• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 11BOSS11
  • Дата начала
X

Xalet

Код:
	FILENAME2="C:\temp\test.txt" 
Dim fileNum2 As Integer
fileNum2% = Freefile() 
Open FILENAME2 For Binary As fileNum2% Charset = "ANSI"
Dim stroka12 As Byte

Do While Not Eof(fileNum2%)  
Get #fileNum2% , , stroka12 
Print Chr(stroka12)
If stroka12=10 Then
Msgbox "Found"
End If
Loop
Close fileNum2%
 
1

11BOSS11

Код:
	FILENAME2="C:\temp\test.txt" 
Dim fileNum2 As Integer
fileNum2% = Freefile() 
Open FILENAME2 For Binary As fileNum2% Charset = "ANSI"
Dim stroka12 As Byte

Do While Not Eof(fileNum2%)  
Get #fileNum2% , , stroka12 
Print Chr(stroka12)
If stroka12=10 Then
Msgbox "Found"
End If
Loop
Close fileNum2%

ну такой вариант мне не совсем подойдет:
во первых мне нужно найти два последовательных ентера - Chr(10), а за ним следуйщий символ чтобы был Chr(13) , а во вторых считывать воследуищие строки в масив (в нужной код...).......пока не встерчу опять же 2 енткра подряд 10, 13.....


Добавлено:
ну такой вариант мне не совсем подойдет:
во первых мне нужно найти два последовательных ентера - Chr(10), а за ним следуйщий символ чтобы был Chr(13) , а во вторых считывать воследуищие строки в масив (в нужной код...).......пока не встерчу опять же 2 енткра подряд 10, 13.....
а chr(13) не хочет почему то искатся таким способом........
 
1

11BOSS11

вот скрипт XaLet :
1.оно воспринимает жосткий ентер там же где и мягкий,..
2.почему не находит букву "д" ;)


Код:
FILENAME3="C:\temp\test.txt" 
Dim fileNum3 As Integer
fileNum3% = Freefile() 
Open FILENAME3 For Binary As fileNum3% Charset = kodirovka
Dim stroka13 As Byte

Do While Not Eof(fileNum3%)  
Get #fileNum3% , , stroka13 
'Print Chr(stroka13)
If stroka13=10 Then
'Msgbox "Found"
Print "нашли жосткий ентер 10"
End If
If stroka13=13 Then
'Msgbox "Found"
Print "нашли ентер 13"
End If
If stroka13=Asc("д") Then
'Msgbox "Found"
Print "bukva "д""
End If
Loop
Close fileNum3%

Добавлено: ага, японял - потомучто "д" руская буква,.....английские находит!
а как тогда сделать чтобы руские тоже находило? :)
 
X

Xalet

1.оно воспринимает жосткий ентер там же где и мягкий,..

а чем они отличаются? =)

а как тогда сделать чтобы руские тоже находило? 1_3_3.gif

а если так?

Код:
 Chr(stroka13) = 'д'

да и чем вам с пустой строкой не подошел вариант?


Uni ( stringExpr )
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
крута... вы не задумывались о названии asc - ascii

в базовом понимании - там и нет русских букв...
но ежели даже расширить - ваш метод сравнения не пропрёт, в большинстве случаев
 
1

11BOSS11

крута... вы не задумывались о названии asc - ascii

в базовом понимании - там и нет русских букв...
но ежели даже расширить - ваш метод сравнения не пропрёт, в большинстве случаев

да,.....точно......
а может чтото посоветуете?........
какой метод сравнения можна сдесь реалиховать?...... :unsure:
 
N

nvyush

Похоже, Вы изобретаете какой-то велосипед. Если файл представляет собой набор строк, то и читайте его построчно. Если хотите хранить к-либо структуры данных — рассмотрите вариант xml, в Lotus есть штатные работы с xml.
 
1

11BOSS11

Похоже, Вы изобретаете какой-то велосипед. Если файл представляет собой набор строк, то и читайте его построчно. Если хотите хранить к-либо структуры данных — рассмотрите вариант xml, в Lotus есть штатные работы с xml.

построчно то можна читать, но задача стоит в том чтобы разделителями были именно два последовательных энтэра(Chr(10),Chr(13))..
вотс......... :unsure:
 
N

nvyush

11BOSS11
Формат файла Ваш или внешний? Если Ваш, что мешает его изменить? Если внешний — может можно договориться с поставщиком о смене формата?
 
N

nvyush

11BOSS11
Если всё так плохо и формат сменить не удастся, есть вариант считывать побайтно из файла в буферный поток, при обнаружении маркера считывать данные из потока в массив, поток чистить, читать в поток до следующего маркера и т.д.
 
X

Xalet

построчно то можна читать, но задача стоит в том чтобы разделителями были именно два последовательных энтэра(Chr(10),Chr(13))..
вотс......... wacko.gif

Между двумя энтереми всегда будет пустая строка. Так и не ответили, что мешает по ней отслеживать?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
читайте два раза...
Reads text lines from a stream.
Defined in
NotesStream
Syntax
text$ = notesStream.ReadText( [ oneLine& ] , [ eol& ] )
EOL_CRLF (0) treats a carriage return and line feed (ASCII 10 + 13) as end-of-line. Default.
 
1

11BOSS11

Спасибо все за помощь !

тут такой вопросик еще есть :
я читаю с бинарного файла посимвольно таким способом по 100 символо:

buf=Input$(100, #fileNum3%)

и когда в файле остаетяс меньше 100 символов, выдается ошибка.
Воарос:
Как мне узнать кол-во символов в файле, чтобы можно было бы эти мманипулировать.?
Или как мне считать файл в блоки по n символов...?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!