![]() |
| ||
|
|
Новости |
Поиск |
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. Спасибо.
LexXL (2006-11-13 13:09:00) [1]мона и так
(написал как проверенно и работает)
Anatoly Podgoretsky (2006-11-13 12:29:00) [2]> LexXL (13.11.2006 11:36:27) [27]
Уже лучше, теперь бы убрать {$I} и посимвольное сравнение заменить на if Copy(S, 1, 3) = 'Ссы' then
Anatoly Podgoretsky (2006-11-13 12:27:00) [3]> Jeer (13.11.2006 11:29:25) [25]
Поэтому я и советую - переписать все нафиг
Anatoly Podgoretsky (2006-11-13 12:26:00) [4]> Percent (13.11.2006 11:25:23) [23]
Педадогический ход, это когда ремнем.
LexXL (2006-11-13 11:36:00) [5]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
F: textfile;
s:ansistring;
i:integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(F, OpenDialog1.FileName);
{$I-}
Reset(F);
{$I+}
if IOResult = 0 then
begin
i:=0;
while not Eof(F) do
begin
inc(i);
Readln(F, s);
if (length(s)>2) and ((s[1]='С') and (s[2]='с') and (s[3]='ы'))
then memo1.lines.add(IntToStr(i));
end;
CloseFile(F);
end
else
MessageDlg('Ошибка открытия файла', mtWarning, [mbOk], 0);
end;
end;
end.
Плохиш (2006-11-13 11:31:00) [6]
> If not (length(readingstring) = 0) then
Надо же какое извращённое мышление 8-O
> If (Pos('Page',readingstring) >0) then
А в начале ветки говорилось о проверке первых символов строки, а теперь в любом месте.
Jeer (2006-11-13 11:29:00) [7]Anatoly Podgoretsky © (13.11.06 11:26) [24]
Сам знаешь, все сразу нельзя рассказывать - может не переварить, подавиться.
> funky (13.11.06 10:58) [17]
> если кому-то надо...
Это так шутят сейчас ?
Anatoly Podgoretsky (2006-11-13 11:26:00) [8]> Jeer (13.11.2006 11:13:20) [20]
Ну лишнего там много, начнем с того, что этот кусок кода надо написать с нуля и более правильно.
Percent (2006-11-13 11:25:00) [9]> If not (length(readingstring) = 0) then
зачем тут арифметическое отричание?
Это не арифметическое отрицание.
Это педагогический ход.
Вообще-то...
Anatoly Podgoretsky (2006-11-13 11:21:00) [10]> Percent (13.11.2006 10:50:16) [16]
> If not (length(readingstring) = 0) then
Ну это конечно бред, зачем тут арифметическое отричание?
Может автор расскажет?
Anatoly Podgoretsky (2006-11-13 11:20:00) [11]> funky (13.11.2006 10:49:14) [14]
Чего хочу? Того же что и Бендер, взаимности
Сообщи наконец что такое readingstring
При том не словами, а точное объявление,
о чем сейчас говорить? О неизвестном?
Jeer (2006-11-13 11:13:00) [12]
> If not (length(readingstring) = 0) then
Это лишнее.
> readingstring := mystr.Strings[i];
Это - тоже лишнее.
Percent (2006-11-13 11:04:00) [13]отправлю отчёт, и пойду читать "delFi для чайников."
А вот это правильно.
Хотя, можно было бы найти более классическую книгу...
funky (2006-11-13 10:58:00) [14]Пасиб всем =)
funky (2006-11-13 10:58:00) [15]Percent (13.11.06 10:50) [16]
Балин %)
MBo © (13.11.06 10:05) [4]
нужно было стразу не мудрить, а юзать pos %)
отправлю отчёт, и пойду читать "delFi для чайников."
если кому-то надо...
procedure TForm1.Button1Click(Sender: TObject);
begin
mystr := TStringList.Create;
mystr.LoadFromFile('X:\Отчёт.txt');
For i := 0 to mystr.Count-1 do
begin
readingstring := mystr.Strings[i];
If not (length(readingstring) = 0) then
If (Pos('Page',readingstring)>0) then
Memo2.Lines.Add(IntToStr(i)+',');
end;
Percent (2006-11-13 10:50:00) [16]If not (length(readingstring) = 0) then
Percent (2006-11-13 10:49:00) [17]Отладчиком пройдись пошагово.
funky (2006-11-13 10:49:00) [18]Что-то со мной не то =/
length(readingstring) явно показывает не 0, почему тогда перескакивает =/
Anatoly Podgoretsky © (13.11.06 10:33) [12]
Вы уважаемый для меня человек, но я никак не могу понять, что Вы пытаетесь до меня донести =(
funky (2006-11-13 10:42:00) [19]Percent (13.11.06 10:31) [11]
Те же яйца, но другим ракуром %) Всё равно перескакивает с If not length(readingstring) = 0 then
procedure TForm1.Button1Click(Sender: TObject);
begin
mystr := TStringList.Create;
mystr.LoadFromFile('X:\Îò÷¸ò.txt');
For i := 0 to mystr.Count-1 do
begin
readingstring := mystr.Strings[i];
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;
Anatoly Podgoretsky © (13.11.06 10:33) [12]
readingstring это читаеммая в данный момент строчка, ну обнуляем её(хотя и вправду зачем, мы же ей ничего не присваиваем), что бы читать с 1-го символа.
Anatoly Podgoretsky (2006-11-13 10:33:00) [20]> funky (13.11.2006 10:23:09) [9]
Я уже нашел присвоение J у тебя, теперь хотелось бы знать, что такое readingstring и почему J=0