![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Считывание строк [D7, XP]
funky © (2006-11-13 09:58:00)Привет мастера! Подскажите в чём ошибка.
For i:=0 to resSTR do
begin
readln(CFile,readingstring);
if readingstring[j]='С' then
if readingstring[j+1]='с' then
if readingstring[j+2]='ы' then
Memo2.Lines.Add(IntToStr(i)+',');
end;
Мне нужно проверить, если в считываеммой строчке первые 3 символа "Ссы", тогда добавляем номер строчки в мемо2. Спасибо.
Percent (2006-11-13 10:31:00) [21]Кхм... используй TStringList
funky (2006-11-13 10:27:00) [22]Подумал тут, с while not EOF(CFile) do, проще %)
Но всё равно ошибка остаётся =/
funky (2006-11-13 10:23:00) [23]Anatoly Podgoretsky © (13.11.06 10:18) [8]
ну так j-то обнуляется, каждый раз.
Единственная ф-ция j, это присваивание ему значения от 0 до 2, для считывание символа из строки. Он по определению не может быть равен больше 2х.
Или я что-то неправельно понял =/
Через F7 глянул, прога считает что
If not length(readingstring) = 0 then
всегда равен 0, и перескакивает =/
Anatoly Podgoretsky (2006-11-13 10:18:00) [24]> Jeer (13.11.2006 10:04:03) [3]
А если имеет длину 10, но J = 15?
Anatoly Podgoretsky (2006-11-13 10:17:00) [25]> funky (13.11.2006 09:58:00) [0]
В приведеном коде не видать цикла по J
Допустим он где то выше, но тогда во внутренний цикл совсем не нужен, по причине бессмысленности
funky (2006-11-13 10:14:00) [26]Стрвнно, код все строчки считывает как пустые =/
procedure TForm1.Button1Click(Sender: TObject);
begin
GetAllStr; //заносим в resSTR общее кол-во строк.
AssignFile(CFile,'X:\Отчёт.txt');
Reset(CFile);
For i:=0 to resSTR do
begin
j:=0;
readln(CFile,readingstring);
If not length(readingstring) = 0 then
begin
if readingstring[j]='С' then
if readingstring[j+1]='с' then
if readingstring[j+2]='ы' then
Memo2.Lines.Add(IntToStr(i)+',');
end;
end;
CloseFile(CFile);
end;
funky (2006-11-13 10:07:00) [27]Percent (13.11.06 10:02) [2]
resSTR, это кол-во строк в файле.
Jeer © (13.11.06 10:04) [3]
>>3. Где проверка длины прочитанной строки (?) readingstring?
>>2. А если строка очередная строка имеет длину 0 - чего будет с [j] ?
блин, недоглядел, наверно действительно там строка пустая, щас проверку добавлю, и поглядим.
MBo © (13.11.06 10:05) [4]
Мне так удобнее %)
MBo (2006-11-13 10:05:00) [28]Чтение странно выглядит, а для проверки подстроки - Pos используй
Jeer (2006-11-13 10:04:00) [29]1. По файлу так не ходят, есть EOF для этого.
2. А если строка очередная строка имеет длину 0 - чего будет с [j] ?
Percent (2006-11-13 10:02:00) [30]1. Что такое resSTR?
2. В момент выполнения этого кода файл CFile гарантированно открыт для чтения?
3. Где проверка длины прочитанной строки (?) readingstring?
Больше вопросов пока нет...
funky (2006-11-13 09:59:00) [31]P.S. j: byte; равен 0.