Avatar billede eben Nybegynder
05. november 2002 - 18:49 Der er 3 kommentarer og
1 løsning

TSearchRec

Er der mon en der vil hjælpe. Jeg er ved at lave et program, hvor jeg bruger TSearchRec til at søge i filer. Filerne udvælger jeg fra en openDialogBox, både som enkelt fil og med *.ext Jeg gemmer Pathsnavnet i en inifil. Programmet virker når jeg vælger fra Dialogboxen, men det virker ikke når jeg genstarter programmet og kun bruger pathnavnet fra inifilen, Jeg får fejl  EFOpenError 'cannot open file '. Hvis jeg laver ny søgning på samme filer, uden at genstarte programmet virker inifilens pathnavn udmærket.Mangler der noget initialisering el.lign. ??? Jeg er ny både til Delphi og på Eksperten, så bær over med mig hvis jeg ikke forstår det så hurtigt
Avatar billede esoulman Nybegynder
05. november 2002 - 19:18 #1
Vi bliver nødt til at se lidt kode.
Avatar billede eben Nybegynder
05. november 2002 - 19:31 #2
Her er den del af koden jeg mener der er relavant



unit setup_sog;
-
-
-
-

-
-
-
-
procedure TForm2.Open1(const AFileName: string);
begin

  PathName1 := AFileName;
  edit1.text:=pathname1;

end;

procedure tform2.startsoeg;
begin

stekst1:=edit4.Text;
stekst2:=edit5.text;
stekst3:=edit6.Text;
stekst4:=edit7.text;
stekst5:=edit8.Text;
stekst6:=edit9.text;
stekst7:=edit10.Text;
stekst8:=edit11.text;
stekst9:=edit12.Text;
stekst10:=edit13.text;
resfilnavn:=edit2.Text;
Pathname1:=Edit1.text;
//-------------------------------------------------------initfil
initfil:=TInifile.Create(extractfilepath(paramstr(0))+'fritxt.ini');

initfil.WriteString(initindeks,'stekst1',stekst1);
initfil.WriteString(initindeks,'stekst2',stekst2) ;
initfil.WriteString(initindeks,'stekst3',stekst3);
initfil.WriteString(initindeks,'stekst4',stekst4);
initfil.WriteString(initindeks,'stekst5',stekst5);
initfil.WriteString(initindeks,'stekst6',stekst6);
initfil.WriteString(initindeks,'stekst7',stekst7);
initfil.WriteString(initindeks,'stekst8',stekst8);
initfil.WriteString(initindeks,'stekst9',stekst9);
initfil.WriteString(initindeks,'stekst10',stekst10);
initfil.WriteString(initindeks,'resfilnavn',resfilnavn);
initfil.WriteString(initindeks,'pathname1',pathname1);
initfil.Writeinteger(initindeks,'ornot',ornot.itemIndex) ;

initfil.free;
//--------------------------------------------------slut initfil
CASE ORNOT.ItemIndex OF
0:form1.soegeor;
1:begin
  if checknottl.State = cbUnchecked then form1.soegenot
  else form1.soegenottomlinie
  end;
2:form1.soegeand;
end;
close;
end;



procedure TForm2.Button1Click(sender: TObject);
begin
  if OpenDialog1.Execute then

    Open1(OpenDialog1.FileName);

end;


procedure TForm2.Button2Click(Sender: TObject);
begin
startsoeg;
end;

procedure TForm2.initsetup1;
begin
initindeks:='setup1';
startinitsetup;
end;

procedure TForm2.initsae;
begin
initindeks:='sae';
startinitsetup;
end;

procedure TForm2.startinitsetup;
begin
initfil:=TInifile.Create(extractfilepath(paramstr(0))+'fritxt.ini');

edit4.text:=initfil.ReadString(initindeks,'stekst1','');
edit5.text:=initfil.ReadString(initindeks,'stekst2','') ;
edit6.text:=initfil.ReadString(initindeks,'stekst3','');
edit7.text:=initfil.ReadString(initindeks,'stekst4','');
edit8.text:=initfil.ReadString(initindeks,'stekst5','');
edit9.text:=initfil.ReadString(initindeks,'stekst6','');
edit10.text:=initfil.ReadString(initindeks,'stekst7','');
edit11.text:=initfil.ReadString(initindeks,'stekst8','');
edit12.text:=initfil.ReadString(initindeks,'stekst9','');
edit13.text:=initfil.ReadString(initindeks,'stekst10','');
edit2.text:=initfil.ReadString(initindeks,'resfilnavn','');
edit1.text:=initfil.ReadString(initindeks,'Pathname1','') ;
ornot.itemIndex:=initfil.ReadInteger(initindeks,'ornot',0) ;

initfil.free;

end;


end.

--------------------------------------------------------------------------------------------

unit F_Fritxt;
-
-
-
-
-
-
-
-
-


  procedure tform1.soegenottomlinie;
var

//  resfil : textfile;
//  sl : TStringlist;
// s : string;
  // i : integer;

  searchfor1,searchfor2,searchfor3,searchfor4:string;
  searchfor5,searchfor6,searchfor7,searchfor8:string;
    searchfor9,searchfor10:string;
  begin

    richedit1.clear;
    searchfor1 := uppercase(setup_sog.stekst1) ;
    searchfor2 := uppercase(setup_sog.stekst2) ;
    searchfor3 := uppercase(setup_sog.stekst3) ;
    searchfor4 := uppercase(setup_sog.stekst4) ;
    searchfor5 := uppercase(setup_sog.stekst5) ;
    searchfor6 := uppercase(setup_sog.stekst6) ;
    searchfor7 := uppercase(setup_sog.stekst7) ;
    searchfor8 := uppercase(setup_sog.stekst8) ;
    searchfor9 := uppercase(setup_sog.stekst9) ;
    searchfor10 := uppercase(setup_sog.stekst10) ;

    assignfile(resfil,setup_sog.resfilnavn);
    rewrite(resfil);
    StrpCopy(filnavn,pathname1);
    if findfirst(filnavn,faanyfile,filnavnrec)= 0 then
    begin

    sl :=(TStringlist.Create);
    sl.LoadFromFile(filnavnrec.name);
      for i:=0 to sl.Count-1 do
      if pos(searchfor1,(uppercase(sl[i])))or
        pos(searchfor2,(uppercase(sl[i]))) or
        pos(searchfor3,(uppercase(sl[i]))) or
        pos(searchfor4,(uppercase(sl[i]))) or
        pos(searchfor5,(uppercase(sl[i]))) or
        pos(searchfor6,(uppercase(sl[i]))) or
        pos(searchfor7,(uppercase(sl[i]))) or
        pos(searchfor8,(uppercase(sl[i]))) or
        pos(searchfor9,(uppercase(sl[i]))) or
        pos(searchfor10,(uppercase(sl[i])))  >0 then


  else begin
    s:=sl[i];
    if s <> '' then writeln(resfil,s);  //her søges efter tomme linier

    end;

    while findnext(filnavnrec)=0 do
    begin
      sl :=(TStringlist.Create);
    sl.LoadFromFile (filnavnrec.name);
      for i:=0 to sl.Count-1 do
      if pos(searchfor1,(uppercase(sl[i])))or
        pos(searchfor2,(uppercase(sl[i]))) or
        pos(searchfor3,(uppercase(sl[i]))) or
        pos(searchfor4,(uppercase(sl[i]))) or
        pos(searchfor5,(uppercase(sl[i]))) or
        pos(searchfor6,(uppercase(sl[i]))) or
        pos(searchfor7,(uppercase(sl[i]))) or
        pos(searchfor8,(uppercase(sl[i]))) or
        pos(searchfor9,(uppercase(sl[i]))) or
        pos(searchfor10,(uppercase(sl[i])))  >0 then


  else begin
    s:=sl[i];
    if s <> '' then writeln(resfil,s);  //her søges efter tomme linier

    end;
Avatar billede eben Nybegynder
06. november 2002 - 20:21 #3
Har selv fundet løsningen:
  ChDir(ExtractFilePath(pathname1));
Avatar billede eben Nybegynder
10. november 2002 - 17:00 #4
-
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