Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Считывание строк [D7, XP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо