|   |   | 
| 
 | v7: как текстовый файл ~2мб быстро загрузить в многострочную строку | ☑ | ||
|---|---|---|---|---|
| 0
    
        perkos 06.12.12✎ 12:17 | 
        работать с этим файлом оч медленно....     | |||
| 1
    
        КонецЦикла 06.12.12✎ 12:17 | 
        Запросом?     | |||
| 2
    
        Mikeware 06.12.12✎ 12:21 | 
        собрался парсить mlg?     | |||
| 3
    
        perkos 06.12.12✎ 12:22 | 
        (1) как запросом?
  (2) да не, просто файл дают такой надо по нему отчет делать | |||
| 4
    
        1Сергей 06.12.12✎ 12:22 | 
        копипасте, не?     | |||
| 5
    
        Ёпрст гуру 06.12.12✎ 12:23 | 
        через fso     | |||
| 6
    
        Ёпрст гуру 06.12.12✎ 12:23 | 
        можно и быстрее     | |||
| 7
    
        Balabass 06.12.12✎ 12:24 | 
        читай построково и в ТЗ засовывай через ФСО.     | |||
| 8
    
        perkos 06.12.12✎ 12:26 | 
        ткст = СоздатьОбъект("Текст");
  ткст.Открыть(ПутьКФайлу); колСтрок = ткст.КоличествоСтрок(); Файл=""; Для ы=1 По колСтрок Цикл Файл = Файл + ткст.ПолучитьСтроку(ы)+РазделительСтрок; Состояние("Загрузка файла в память "+Окр(ы/колСтрок,2)*100+"%"); КонецЦикла; вот это выполняется пару минут даже на оч быстрой тачке (5) плохо гуглится, есть че поподробнее? | |||
| 9
    
        Mikeware 06.12.12✎ 12:26 | 
        (3) если по нему отчет - наверное, csv?
  дык для csv есть более другие методы.. | |||
| 10
    
        ДенисЧ 06.12.12✎ 12:28 | 
        попробуй ЧтениеТекста...     | |||
| 11
    
        perkos 06.12.12✎ 12:36 | 
        (10) чье это? я по 1с7     | |||
| 12
    
        ДенисЧ 06.12.12✎ 12:36 | 
        (11) ой...
  тады (5) | |||
| 13
    
        perkos 06.12.12✎ 12:37 | 
        (9) csv? файл текстовый просто, не форматный, обработчик я для него сделал просто медленно очень...
  чейто ФСО? | |||
| 14
    
        ДенисЧ 06.12.12✎ 12:40 | ||||
| 15
    
        perkos 06.12.12✎ 12:42 | 
        ы=1;
  FSO=СоздатьОбъект("Scripting.FileSystemObject"); File=FSO.GetFile(ПутьКФайлу); TextStream=File.OpenAsTextStream(1); Пока TextStream.AtEndOfStream=0 Цикл //Стр_ = TextStream.ReadLine(); Файл = Файл + СокрЛП(TextStream.ReadLine())+РазделительСтрок; Состояние("Загрузка файла в память "+Окр(ы/колСтрок,2)*100+"%"); ы=ы+1; КонецЦикла; TextStream.Close(); так вот попробовал тоже тягомотно | |||
| 16
    
        eRik 06.12.12✎ 12:43 | 
        в V7plus есть свои методы для работы с текстовиками.
  тож медленно? | |||
| 17
    
        Дык ё 06.12.12✎ 12:50 | ||||
| 18
    
        FN 06.12.12✎ 21:04 | 
        FSO=СоздатьОбъект("Scripting.FileSystemObject");
  File=FSO.GetFile(ПутьКФайлу); TextStream=File.OpenAsTextStream(1); Файл =TextStream.Read(File.Size); TextStream.Close(); Так вообще должно быть почти мгновенно. Ищи тормоза в другом месте | |||
| 19
    
        oslokot 06.12.12✎ 21:54 | 
        (0)
  не решение твоей траблы, но я бы убрал из цикла Состояние("Загрузка файла в память "+Окр(ы/колСтрок,2)*100+"%"); ибо замедляет | |||
| 20
    
        Fragster гуру 06.12.12✎ 22:02 | 
        через ADO можно запрос делать, если это текст с разделителями или с полями фиксированной длины     | |||
| 21
    
        Torquader 07.12.12✎ 00:52 | 
        Вопрос - а в чём смысл загрузки сразу всего файла в память - не проще ли его читать построчно ?
  P.S. я при помощи Scripting.FileSystemObject образы дисков читал - и ничего - работало. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |