| 
    
            
         
         | 
    
    
  | 
построчное чтение текстового файла | ☑ | ||
|---|---|---|---|---|
| 
    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 Тогда Сообщить(Стр); Стр = Текст.ПрочитатьСтроку(); Если Стр <> Неопределено Тогда Сообщить(Стр); Иначе Прервать; КонецЕсли; Стр = Текст.ПрочитатьСтроку(); Если Стр <> Неопределено Тогда Сообщить(Стр); Иначе Прервать; КонецЕсли; КонецЕсли; Стр = Текст.ПрочитатьСтроку(); КонецЦикла;  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |