Войти

Показать полную графическую версию : Удаление всех пробельных символов в текстовых файлах.


Страниц : 1 [2]

megaloman
22-10-2020, 22:37
MyDir = "Z:\Box_In"
MyMask = "^.*\..*$"

Set Reg = CreateObject("VBScript.RegExp")
Reg.IgnoreCase = True
Reg.Pattern = MyMask

With CreateObject("Scripting.FileSystemObject")
Set Files = .GetFolder(MyDir).Files

For Each File In Files
Filename = File.Path
If Reg.Test(Filename) Then

Set fIn = .OpenTextFile(Filename, 1, False)
On Error Resume Next
Err.Number = 0
InTxt = fIn.ReadAll

If Err.Number = 0 Then
fIn.Close
InTxt = Replace(InTxt, " ", "")
Mas = Split(InTxt, vbCrLf)

iMax = -1
For i = UBound(Mas) To LBound(Mas) Step -1
If Len(Mas(i)) <> 0 Then
iMax = i
Exit For
End If
Next
Set fIn = .CreateTextFile(Filename, True)
fIn.Close

Set fIn = .OpenTextFile(Filename, 8, False)
If iMax >= 0 Then
For i = LBound(Mas) To iMax
If Len(Mas(i)) <> 0 Then
If i <> iMax Then
fIn.WriteLine Mas(i)
Else
fIn.Write Mas(i)
End If
End If
Next
End If
fIn.Close
Else
fIn.Close
End If
On Error GoTo 0
End If
Next
End With

MsgBox "Done"

greg zakharov
22-10-2020, 23:25
просто некоторые и переводы строки относят к пробелам.
Кто например? Может вы путаете BRE [:space:] с пробелами?
sed -i.bak "s/[[:space:]]/\n/g" *.txt
Только вот тогда нужно иметь в виду, что POSIX [:space:] на самом деле BRE представление ASCII [ \t\r\n\v\f] (или в краткой записи - \s). В переводе на матерный русский это означает, что в том же ASCII пробел кодируется 32 чаром, а управляющая последовательность \n - 10.

serg515
23-10-2020, 13:02
Кто например? Может вы путаете BRE [:space:] с пробелами?
К »

например..
есть такой программный продукт zennoposter, там фичя,удаление пробелов.
так вот там удаление происходит, вместе с переводом строк.

Опиум
23-10-2020, 16:46
Может проще уже консольную утилиту написать?

type вашфайл.txt | мояутилита.exe >идеальный_файл.txt

serg515
24-10-2020, 16:02
что не устроило в vbs- скрипте? Там вроде бы учтены все пожелания и не надо никаких добавочных средств. »
ваш скрипт сработал нормально.спс.




© OSzone.net 2001-2012