|   |   | 
| 
 | построчное чтение текстового файла | ☑ | ||
|---|---|---|---|---|
| 0
    
        abbas 09.07.12✎ 13:44 | 
        построчное чтение текстового файла в 8.1
  Есть файл в котором много строк, но мне нужны только некоторые, как я могу это реализовать, с помощью чего, подскажите плс... | |||
| 1
    
        DrShad 09.07.12✎ 13:47 | 
        Текст.ПолучитьСтроку()     | |||
| 2
    
        izekia 09.07.12✎ 13:47 | 
        по какому-то шаблону?     | |||
| 3
    
        izekia 09.07.12✎ 13:47 | 
        или просто по номеру?     | |||
| 4
    
        abbas 09.07.12✎ 13:51 | 
        По названию продан, там есть данный статус "Продан", и после него еще пару строк...
  А если нужно по символам? | |||
| 5
    
        izekia 09.07.12✎ 13:52 | 
        просто можно текст в регулярку и выбрать нужные строки     | |||
| 6
    
        abbas 09.07.12✎ 13:53 | 
        это как "в регулярку"     | |||
| 7
    
        izekia 09.07.12✎ 13:55 | 
        использовать регулярные выражения ...     | |||
| 8
    
        abbas 09.07.12✎ 14:00 | 
        а на примере можно, просто я не сталкивался с регулярными выражениями...     | |||
| 9
    
        izekia 09.07.12✎ 14:01 | 
        ты образец текста дай и что тебе нужно выбирать     | |||
| 10
    
        abbas 09.07.12✎ 14:04 | 
        Путь =  ИмяФайла;
  Текст = Новый ЧтениеТекста(Путь); Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл Стр = Текст.ПрочитатьСтроку(); Если НайтиЗ(Стр,"Продан") Тогда Сообщить(Стр); КонецЕсли; КонецЦикла; | |||
| 11
    
        izekia 09.07.12✎ 14:05 | 
        а этот вариант у тебя работает?     | |||
| 12
    
        Reset 09.07.12✎ 14:05 | 
        (10) Первую строку алгоритм пропустит     | |||
| 13
    
        abbas 09.07.12✎ 14:07 | 
        Если НайтиЗ(Стр,"Продан") Тогда
  это я забыл закоментить, сорри | |||
| 14
    
        abbas 09.07.12✎ 14:19 | 
        (11) так что там?     | |||
| 15
    
        izekia 09.07.12✎ 14:22 | 
        (14) этот вариант у тебя работает?     | |||
| 16
    
        prosto-nik 09.07.12✎ 14:26 | 
        (15/ Вас седня явно игнорируют((()     | |||
| 17
    
        abbas 09.07.12✎ 14:28 | 
        (16)=) У меня такое чувство...=(     | |||
| 18
    
        izekia 09.07.12✎ 14:28 | 
        лол     | |||
| 19
    
        prosto-nik 09.07.12✎ 14:30 | 
        (17) я говорил что Вы игнорируете (15) который наверное хочет Вам помочь, да?     | |||
| 20
    
        WF72 09.07.12✎ 14:40 | 
        а откуда такой извращенный вариант чтения теста? почему бы не проще:
  ТекстовыйДокумент = Новый ТекстовыйДокумент; Попытка ТекстовыйДокумент.Прочитать(ИмяФайла); Исключение Сообщить("Ошибка открытия файла!"); Возврат; КонецПопытки; Для ТекСтрока = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл //... КонецЦикла; | |||
| 21
    
        abbas 09.07.12✎ 14:41 | 
        хаха
  Путь = ИмяФайла; Текст = Новый ТекстовыйДокумент; Текст.Прочитать(Путь); Сообщить(Текст.КоличествоСтрок()); Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл Стр= Текст.ПолучитьСтроку(НомерСтроки); Если Не ПустаяСтрока(Найти(Стр,"Продан")) Тогда Сообщить(Стр); КонецЕсли; КонецЦикла; | |||
| 22
    
        WF72 09.07.12✎ 14:41 | 
        *текста, в смысле :)     | |||
| 23
    
        abbas 09.07.12✎ 14:41 | 
        вот только он мне все выдает а не ту строчку которую хочу     | |||
| 24
    
        Sammo 09.07.12✎ 14:42 | 
        (20) Скорость и размер памяти.
  Попробуй прочитать текстовый документ в несколько сотен мегабайт в текстовый документ и посмотри - что получится... Чтение/запись текста работает по скорости сравнимо с fso | |||
| 25
    
        WF72 09.07.12✎ 14:43 | 
        Сообщить(НомерСтроки), не?     | |||
| 26
    
        abbas 09.07.12✎ 14:45 | 
        (25)нет, он выдает с 1 до 1283, количество строк в тексте     | |||
| 27
    
        izekia 09.07.12✎ 14:55 | 
        Текст = Новый ЧтениеТекста(ИмяФайла);
  Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл Если Найти(Стр,"Продан") > 0 Тогда Сообщить(Стр); КонецЕсли; Стр = Текст.ПрочитатьСтроку(); КонецЦикла; | |||
| 28
    
        abbas 09.07.12✎ 15:02 | 
        Пасиб, а вот еще такой интерес, а если я хочу чтоб не по одной строчки выходило а по две или по три, как мне это сделать?     | |||
| 29
    
        izekia 09.07.12✎ 15:23 | 
        (28) следующие две или три после строки с "продан"?     | |||
| 30
    
        abbas 09.07.12✎ 15:44 | 
        (29)да     | |||
| 31
    
        izekia 09.07.12✎ 16:09 | 
        Текст = Новый ЧтениеТекста(ИмяФайла);
  Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл Если Найти(Стр,"Продан") > 0 Тогда Сообщить(Стр); Стр = Текст.ПрочитатьСтроку(); Если Стр <> Неопределено Тогда Сообщить(Стр); Иначе Прервать; КонецЕсли; Стр = Текст.ПрочитатьСтроку(); Если Стр <> Неопределено Тогда Сообщить(Стр); Иначе Прервать; КонецЕсли; КонецЕсли; Стр = Текст.ПрочитатьСтроку(); КонецЦикла; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |