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

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

  1. 11BOSS11

    11BOSS11 Гость

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

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

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

    Xalet Well-Known Member

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

    11BOSS11 Гость

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

    Xalet Well-Known Member

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

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

    nvyush Lotus team
    Lotus team

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

    11BOSS11 Гость

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

    Xalet Well-Known Member

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

    11BOSS11 Гость

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

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

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

    11BOSS11 Гость

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

    Xalet Well-Known Member

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

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

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

    11BOSS11 Гость

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

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

    Код (LotusScript):
    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

    Регистрация:
    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 Гость

    делаю так чтобы задать размер строки , мм но не находит Chr(10) ,Chr(13)......

    Код (LotusScript):
    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

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

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

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

    Xalet Well-Known Member

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

    11BOSS11 Гость

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

    11BOSS11 Гость

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

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