02. januar 2003 - 15:24Der er
14 kommentarer og 1 løsning
Tjække om ord findes i txt fil?
Hvordan laver jeg sådan at når man trykker på en knap så tjækker den om de ord der står i min richedit står i en ekstern txt fil?? Det skulle gerne være sådan at hvis der var et ord der ikke stod der så skal det ord der ikke står der blive rødt.
var sl:TstringList t:integer; begin sl:=TstringList.create; sl.loadfromfile('ord.txt'); if richedit.lines.count>0 then for t:=0 to richedit.lines.count-1 do if sl.indexof(richedit.lines[t])>0 then {farv den rød} sl.free; end;
du kan eventuelt indlæse din txt fil i en memo og bruge følgende kode...
var i : Integer; begin with Memo1 do if AnsiPos(LowerCase(Edit1.Text), LowerCase(Text)) > 0 then begin SetFocus; SelStart := AnsiPos(LowerCase(Edit1.Text), LowerCase(Text))-1; SelLength := Length(Edit1.Text); end else ShowMessage('"'+Edit1.Text+'" Blev ikke fundet'); end;
ellers...
var i : Integer; S : TStringList; begin S := TStringList.Create; S.LoadFromFile(FilNavn); with S do if AnsiPos(LowerCase(Edit1.Text), LowerCase(Text)) > 0 then begin SetFocus; SelStart := AnsiPos(LowerCase(Edit1.Text), LowerCase(Text))-1; SelLength := Length(Edit1.Text); end else ShowMessage('"'+Edit1.Text+'" Blev ikke fundet i filen'); end;
mortvader>> Kan du ikke lige indbygge den funktion der laver det ord rød som ikke er i filen? Jeg kan næmlig ikke få det til at virke med Edit.Selattributes.Color:=clred;
var i : Integer; S : TStringList; begin S := TStringList.Create; S.LoadFromFile(FilNavn); with S do if AnsiPos(LowerCase(Edit1.Text), LowerCase(Text)) > 0 then ShowMessage('Fandt "'+Edit1.Text+'" i filen') else ShowMessage('"'+Edit1.Text+'" Blev ikke fundet i filen'); end;
den anden procedure med memo1 virker fint!!! Alt du behøver er en TForm, TMemo eller TRichEdit, TButton og en TEdit... Når du kompiler skriver du et eller andet i memoen trykker på knappen og koden finder det ord du ledte efter i memoen, ellers popper en besked op på skærmen...
zerohero>> det er sådan set fint nok, men, men, men. Kan man ikke gøre sådan at hvis den finder en fejl så viser den kun det ord der er fejl i. Ikke som nu hvor den viser hele teksten.
var i : Integer; S : TStringList; begin S := TStringList.Create; S.LoadFromFile('C:\Test1.txt'); with S do if AnsiPos(LowerCase(Edit1.Text), LowerCase(S.Text)) > 0 then ShowMessage('Fandt "'+Edit1.Text+'" i filen') else ShowMessage('"'+Edit1.Text+'" Blev ikke fundet i filen'); S.Free; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.