ellenörzés (fájból)

Sziasztok!

Egy ellenörzést kellene csinálnom, hogy az 's' szerepel e az adott txt állományban.
A következő a forráskód:

j:=0;
s:=memo2.lines[1];
case length(s) of
2: memo1.lines.loadfromfile('szo2.txt');
3: memo1.lines.loadfromfile('szo3.txt');
4: memo1.lines.loadfromfile('szo4.txt');
end;

for i:=1 to memo1.lines.Count do
begin
if (s=memo1.Lines[i]) then
inc(j);
end;

if (j>0) then showmessage('talált')
else showmessage('nem talált');

Az a bajom ezzel, hogy ami az elején van azokat megtalálja, ami a végén van mindenképp azt írja ki, hogy nem találta(pedig ott van).
Próbáltam a hagyományos soronkénti beolvasást is, de az sem működött.
Van valakinek tippje mi lehet a baj?
Előre is köszönöm!

pontosítás

bocsánat, pontosítok a feladaton!
a szo2, szo3 stb ezekben szavak vannak tárolva soronként (szóköz nem lehet benne)
az s:string tipusú, és ezt a 'játékos' adja meg.
a program ezt csak egyszer fogja megtalálni.
(a feladat szempontjából az a lényeg hogy benne van e valamelyik txt-ben)
Karesz a te megoldásod átírom majd stringre (remélem jól értelmeztem).

switch

Na igen de mivan akkor ha a

Na igen de mivan akkor ha a szöveg szóközzzel kezdődik, vagy mással akkor nem találja meg a keresett string-et. Ezért
if s=memo1.Lines[i] then
helyett:
if pos(s,memo1.Lines[i])<>0 then
Ugyanis ez csak akkor 0 ha a memo1.Lines[i]-ben nincs benne sehol sem a s-ben tárolt string
Üdv.: Totó

Szia switch!

Szia switch!

Lehet, hogy egy kicsit túl bonyolítottam, de működik!
Először egy showmessage-ben kiírja, hogy ha talált /'talált'/,
majd egy másik showmessage-ben, hogy mennyit.

Itt a teljes Unit1.pas:

kód:

***************************************************************
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
const
betu:array [0..0] of char=('s');
implementation

{$R *.dfm}

function betu_e(c:char):boolean;
var
a:integer;
begin
Result:=false;
for a:=0 to High(betu) do
if betu[a]=c then
begin
Result:=true;
break;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a,i:integer;
s:string;
begin
memo1.lines.LoadFromFile('szo3.txt');

s:='';
i:=0;

for a:=1 to Length(memo1.Text) do
if betu_e(Memo1.Text[a]) then
begin
showmessage('talált');
i:=i+1;
showmessage(IntToStr(i));
end;

end;

end.

**************************************************************
Üdv: Karesz

Könyvajánló

Programozzunk Turbo Delphi Rendszerben