WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Visual Basic
  Проблемка

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Проблемка
urik опубликован 01-02-2002 01:46 MSK   Click Here to See the Profile for urik   Click Here to Email urik  
Короче, нужно обработать файл весом в 20 метров, так чтобы выделить все слова, разделенные пробелом и записать их в другой файл, по одному слову на строчку...
Написал программу, но она виснет безнадежно, може кто подскажет работающий вариант?
Lamer опубликован 02-02-2002 11:33 MSK     Click Here to See the Profile for Lamer  Click Here to Email Lamer     
Ну, заочно могу сказать, что проблема точно не в размере файла! Я работал с куда более большими! Но чтение такого файла - очень длительный процесс! Может программа не зависла? Может она исправно делает своё дело? Единственный способ узнать зависла прога или нет - это нажать Ctrl+Break!
7in опубликован 02-02-2002 23:46 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Option Explicit

Const ChSize = 4096

Private Sub CutWords(InFile As String, OutFile As String)
Dim Ch(1 To ChSize) As Byte, S As String
Dim i As Long
Open InFile For Random Access Read As #1 Len = ChSize
Open OutFile For Output As #2
While Not EOF(1)
Get #1, , Ch
For i = 1 To ChSize
If Ch(i) = 32 Then
If Len(S) > 0 Then Print #2, S
S = ""
Else
S = S + Chr(Ch(i))
End If
Next i
Wend
For i = Len(S) To 1 Step -1
If Mid(S, i, 1) <> Chr(0) Then Exit For
Next i
S = Left(S, i)
If S <> "" Then Print #2, S
Close #1
Close #2
End Sub

7in опубликован 02-02-2002 23:47 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
В принципе, у меня одинаково работает (по времени) и ChSize = 1024, и 4096, и 32000...
А вообще, ИМХО, если хочешь скорость, лучше выбери что-нибудь другое, а не VB...
urik опубликован 03-02-2002 01:24 MSK     Click Here to See the Profile for urik  Click Here to Email urik     
Да мне не скорость нужна...
А чтобы работала:) я и подождать могу:)
vmj опубликован 27-02-2002 02:33 MSK     Click Here to See the Profile for vmj  Click Here to Email vmj     
Для получения массива слов разделенных пробелами класно работает функция:

s() = Split(sStr, Space$(1))

С ее помощью помнится "причесал" текстовый вариант "Властелина колец" и ничего - не "захлебнулась" ... Правда каюсь - обрабатывал по абзацам.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.