|
|
|
Чем быстрее считать текстовый файл? Ø |
☑ | ||
|---|---|---|---|---|
|
0
Vaicartana
27.08.05
✎
07:01
|
Нужно считать содержимое тектовика в некоторую переменную.
Файл достаточно большой (2-4 мега), стандартный объект "Текст" считывает построчно и очень долго. Может есть что нибудь из непобедимого VBScript'a? |
|||
|
1
LOSS
27.08.05
✎
07:14
|
активмд. но тож фигня
|
|||
|
2
Guk
27.08.05
✎
08:12
|
(0) В своё время Dolter выкладывал быстрый текстовый обмен. Сам не не использовал. Мне V7Plus хватает. Работает быстро...
|
|||
|
3
ondul
27.08.05
✎
08:34
|
(0) - Очень быстро обрабатываются текстовики с количеством строк около 1000-2000 (оптимум) - по 20-60 кБайт. Я сделал выгрузку в выделенную дирректорию "C:\obmen\", в файлы c инкрементом имени, типа spr00001.txt-spr99999.txt, нарезанные по заданному количеству строк, тогда запись\чтение происходит очень быстро и нет сомнения в использовании текстового формата при обмене c последующим считыванием, за исключением строк, содержащих спец-символы - символ переноса строк.... - такие, при выгрузке, приходится заменять на отличительный признак, с последующим восстановлением при считывании...
Скорость обмена возрастает в сотни раз! Количество файлов в дирректории обмена получается большим, при начале процедуры их все приходится уничтожать, но этот процесс в 1С проходит очень быстро. Таким образом можно чрезвычайно быстро делать выгрузку\загрузку информации с суммарным объемом текстовых файлов в 10-ки мегабайт. После попыток, как в (0), работать с одиночным текстовым файлом гигантского размера, в это было трудно поверить, - всё летает!!! Может быть есть другие методы, но этот - меня полностью устроил. |
|||
|
4
alexey galkin
27.08.05
✎
10:25
|
(0) если что, есть такая компонента binfiles.dll
сделал только что обработку, читает текстовый файл в строковую переменную 9,6 мегабайта (лог сквида) за 6 секунд. записывает его обратно в файл за 1 секунду |
|||
|
5
ondul
27.08.05
✎
10:44
|
(4) -
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=143&lid=3794 - это она самая - компонента? |
|||
|
6
alexey galkin
27.08.05
✎
10:58
|
(5) именно та
|
|||
|
7
Vaicartana
29.08.05
✎
04:35
|
2 (4) длл-ка эт конечно хорошо, а без длл-ки никак низя?
Ну неужели могучий VBScripting не умеет читать такие файлы? Знатоки VB, выручайте! |
|||
|
8
MetaEditor
29.08.05
✎
05:56
|
а что конкретно нужно делать с файлом, читать, писать?
для примера fso = CreateObject("Scripting.FileSystemObject"); tf = fso.OpenTextFile("d:\testfile.txt",1); lc = 0; a = _GetPerformanceCounter(); while tf.AtEndOfStream = 0 do s = tf.ReadLine(); lc = lc+1; EndDo; Message(_GetPerformanceCounter() - a); Message(lc); простой перебор строк файла в 71 метр (полтора милиона строк) за 30 секунд |
|||
|
9
smaharbA
29.08.05
✎
07:17
|
(7) если тебе надо поиск в журнале, можно добавить в (8)
set f=fso.getfile("d:\testfile.txt") fsize=f.size ... skip a .... RL=ft.ReadLine RL=ft.ReadLine If (Тут нахождение даты и времени) Then Exit Function //Или чтото в этом роде End If If ДатаИзСтроки>Нужной and ВремяИзСтроки>Нужного Then a=a/2 Else a=fsize-a/2 End If ... Ну гдето так, если надо точнее, напишу, как не лень будет |
|||
|
10
Vaicartana
31.08.05
✎
12:27
|
2 (8) нужно быстрое чтение файла.
Возможно поиск внутри файла. Твой пример попробую, посмотрим как он с длл-кой (5) посоревнуется. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |