Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 00:41   #1
hronos1975
 
Регистрация: 25.05.2010
Сообщений: 5
По умолчанию VB script Раздел текста по разделителю

День добрый
Нужно разбить текстовый файл *(в Юникоде, т.к текст на немецком) на кучу мелких.
Текст в большом файле разделен метками на кусочки, их и надо в отдельные текстовые файлы вывести. Метки стираются в файлах при выводе.
Мне дали скрипт (спасибо тому человеку) на VB и он вроде работает, но по какой-то причине выводит только половину данных указаных в главном файле. Должно было выйти где то 48 отдельных файлов, а вышло только 21 Может кто нибудь найти и поправить ошибку? Заранее спасибо

Цитата:
Const COMDLG_OPEN = 1, COMDLG_SAVE = 2
Const ForReading = 1, ForWriting = 2, ForAppending = 8
dim wpath

DragAndDropIt()

Function ReadTF(file)
Dim fso, f, s, s1
Set fso = CreateObject("Scripting.FileSystemO bject")
Set f = fso.OpenTextFile(file, ForReading)

Do While not f.AtEndOfStream
s = f.Readline

''' here manipulation
s = ChangeS(s," ",1)
msgbox s
ReadTF = ReadTF & s & vbcrlf
Loop
set f = nothing
set fso = nothing
End Function


Function WriteF(str,file)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemO bject")
Set f = fso.OpenTextFile(file, ForWriting, True)
f.Write str
f.close
set f = nothing
set fso = nothing
End Function

Function ReadAllTF(fn)
Const ForReading = 1, ForWriting = 2
Dim fso, f
if fn="" then
ReadAllTF=""
else
Set fso = CreateObject("Scripting.FileSystemO bject")
Set f = fso.OpenTextFile(fn, ForReading)
ReadAllTF = f.ReadAll
end if
End Function


function SearchFor(text,token)
SearchFor = Instr(text, token)
end function


sub MainLoop(s)
i=1:n=1:file = "\tt"
ss = inputbox("Define separator:","Separator (Unicode)","Boris was here")
if ss="" then exit sub
s2 = ss:s3=""
for j=1 to len(s2)
s3 = s3 + mid(s2,j,1)+chr(0)
next:ss=s3

do while n>0
n = SearchFor( s,ss)
if n<1 then exit sub
s1 = left(s,n-1) ' this write into file
WriteF s1,wpath+file+"_"+CStr(i)+".txt"
s = mid(s,n+len(ss))
i=i+1
loop
end sub


Sub DragAndDropIt()
Set args = WScript.Arguments
if args.count = 0 then msgbox "No way!":exit sub:end if
str=args(0)
n=instrrev(str,"\")-1
wpath=left(str,n)
s = ReadAllTF(str)
MainLoop s
msgbox "Done!",vbExclamation,"Text Separator"
set args = nothing
end sub
hronos1975 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java Script Nelly_ JavaScript, Ajax 4 06.04.2011 14:32
Script SanekIrk Общие вопросы Delphi 2 06.09.2008 22:07
corel script Алёна Фриланс 7 13.02.2008 16:49
script alex@x Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 07.12.2007 00:58
need Script vamp Софт 0 21.07.2007 03:11