1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Считывание с файла!

Тема в разделе "Lotus - Программирование", создана пользователем 11BOSS11, 30 авг 2010.

  1. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    У меня есть файл в который записаны строки.

    Нужно забить в масив построчно все строки после строки Chr(10)+Chr(13) (эти строки я использую как ориентиры) и пока не втретится тоже Chr(10)+Chr(13)........

    я пробовал обычным Input, но в таком случае не видит Chr(10)+Chr(13)...
     
  2. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Line Input #fileNumber , varName
     
  3. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    таким образом оно не воспримет строку Chr(10)+Chr(13).....
    а мне надо как то так считать, чтобы увидеть эту строку, так как она является нужным мне маркером.......
     
  4. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Chr(10)+Chr(13) это же конец строки(новая строка и возврат каретки) или я чего-то не понимаю?

    text$ = notesStream.ReadText( [ oneLine& ] , [ eol& ] )
     
  5. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Оно само разбивает на строки, т.е. нужно просто заключить Line Input # в цикл и выходить по eof.
     
  6. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    ну оно то верно в принципе......... я просто использую два рядом стоящих ентера(жосткий и мягкий как маркеры..(чтобы знать откуда и покуда считывать)).... мне наверное тут надо как то может бинарно считывать файл ....
     
  7. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    ну так и сделайте проверку на пустую строку, а лучше другой маркер используйте
     
  8. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    просто мне надо какие то невидимые для глаз при просмотре файла разделители.......... вот.....елси бы не они ,- тогда бы вообще проблем бы не было........или елси бы они были просто String допустим "Marker"......- тогда бы просто Line Input считал бы и все ОКэЙ , а так надо именно невидимые разделители, решил испольховать 2 рядом стоящих ентера
     
  9. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Может классом NotesStream воспользоваться?
     
  10. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    пустая строка не подойдет,.....а какой другой маркер например?
     
  11. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    например 17 пробелов или табов. не видно...
     
  12. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    черен стрим всё берется как надо, главное указать что это бинарник
     
  13. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    мм .. я не пользовался NotesStream, может кто примерчик подбросит плиз.............

    Добавлено: вот я открываю бинарно файл, и счытываю побайтно его,
    и вот проблема, что то оно не хочет считыватся ,- переменная stroka12 пустая на каждой итерации........

    Код:
    FILENAME2="C:\999.txt" 
    Dim fileNum2 As Integer
    fileNum2% =Freefile()	
    Open FILENAME2 For Binary As fileNum2% Charset=kodirovka
    Dim stroka12 As String
    OtrezHeader=False
    k=0
    
    Do While OtrezHeader = False
    k=k+1		
    Get #fileNum2% ,k , stroka12 
    If stroka12=Chr(10) Then
    Print "НАшли a0"
    Get #fileNum2% ,k+1 , stroka12 
    If stroka12=ad Then
    Print "НАшли ad"
    OtrezHeader=True
    k=k+1
    End If
    End If
    
    Loop
     
  14. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Binary file: The number of bytes read from the file is equal to the length of the string currently assigned to variableName. If variableName has not been initialized, no data is read from the file.
     
  15. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    делаю так чтобы задать размер строки , мм но не находит Chr(10) ,Chr(13)......

    Код:
    FILENAME2="C:\999.txt" 
    Dim fileNum2 As Integer
    fileNum2% =Freefile()	
    Open FILENAME2 For Binary As fileNum2% Charset=kodirovka
    Dim stroka12 As String
    stroka12= " " ' определяем размер строкии
    OtrezHeader=False
    k=0
    
    Do While OtrezHeader = False
    k=k+1		
    Get #fileNum2% ,k , stroka12 
    If stroka12=Chr(10) Then
    Print "НАшли a0"
    Get #fileNum2% ,k+1 , stroka12 
    If stroka12=ad Then
    Print "НАшли ad"
    OtrezHeader=True
    k=k+1
    End If
    End If
    
    Loop
     
  16. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    примерчик есть прямо в хелпе
     
  17. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    В хелпе есть примеры NotesStream.
    В твоём примере не задан ad. И первым символом обычно идет возврат каретки chr(13), а потом перевод строки chr(10).
     
  18. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    как по мне переменная К здесь лишняя. Дебагером посмотрите, что оно вам считывает при каждом гете, или в лог распечатайте =)
     
  19. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    оно как то вообще неправильно считівает, - везде пробелы! stroka=" " ....
     
  20. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    помоему чтото не то с кодировкой.....
    Код:
    Open FILENAME2 For Binary As fileNum2% Charset=kodirovka
    а кодировка у мну:
    Код:
    kodirovka= UTF-8
    .........потомучто считывает квадратики......... ;)
     
Загрузка...

Поделиться этой страницей