Avatar billede fun22 Nybegynder
02. januar 2003 - 15:24 Der 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.

Håber i forstår...

Mvh
Jesper
Avatar billede arne_v Ekspert
02. januar 2003 - 16:02 #1
Sæt et flag til false, åne filen, læs alle linier, hvis ordet
er i linien sæt flaget til true og hop ud af løkken, sæt farve
udfra flag.
Avatar billede mortvader Nybegynder
02. januar 2003 - 16:36 #2
noget i denne stil?

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;
Avatar billede zerohero Nybegynder
02. januar 2003 - 18:12 #3
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;
Avatar billede fun22 Nybegynder
02. januar 2003 - 19:25 #4
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;

Der sker ikke noget med overstående kode.
Avatar billede mortvader Nybegynder
03. januar 2003 - 08:17 #5
Du skal sætte selstart og sellength (altså markere ordet) før
Edit.Selattributes.Color:=clred;
vil virke!
Avatar billede zerohero Nybegynder
03. januar 2003 - 11:21 #6
fun22>> "Der sker ikke noget med overstående kode." du skal selvfølig sætte koden i en knaps OnClick event eller lign...
Avatar billede fun22 Nybegynder
03. januar 2003 - 13:01 #7
mortvader>> Hvordan gør jeg det med selstart og sellenght???

zerohero>> Det er jeg godt klare over.
Avatar billede mortvader Nybegynder
03. januar 2003 - 13:03 #8
prøv at slå selstart og sellength op i hjælpen under TRichEdit.
Avatar billede zerohero Nybegynder
03. januar 2003 - 14:48 #9
prøv så dette...

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;
Avatar billede zerohero Nybegynder
03. januar 2003 - 14:51 #10
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...
Avatar billede fun22 Nybegynder
04. januar 2003 - 18:13 #11
nu har jeg læst hjlpen, men jeg fatter nul og niks af det. Så er der ikke en der kan lave en komplet kode??
Avatar billede fun22 Nybegynder
05. januar 2003 - 11:10 #12
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.
Avatar billede mortvader Nybegynder
05. januar 2003 - 11:12 #13
hmm.. hvis du ikke fatter noget af hjælpen, er det måske i virkeligheden en programmør du søger, og ikke forslag til løsning af specifik kode?
Avatar billede zerohero Nybegynder
05. januar 2003 - 16:43 #14
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;
Avatar billede fun22 Nybegynder
13. april 2003 - 19:24 #15
fandt et komponent der virker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester