Entwickler-Ecke

Dateizugriff - TXT-Datei nach Strings durchsuchen - Code


mausi123 - Di 20.11.07 13:59
Titel: TXT-Datei nach Strings durchsuchen - Code
Hi, ich möchte eine txt-datei nach mehreren (2) strings durchsuchen.
Die Groß- u. Kleinschreibung soll dabei ignoriert werden!
Mit folgendem code kann ich leider nur nach einem String suchen..

kann man aus diesem code eine prozedure/ function machen?
meine das so:


Delphi-Quelltext
1:
2:
3:
procedure TForm1.Button1Click(Sender: TObject);
SearchStrings('net use y: ' , 'y: = ','c:\temp\output.txt', edit3.text);
end// edit3 -> ausgabe




Hier mein Code:
---------------


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
procedure TForm1.Button7Click(Sender: TObject);
var 
MyTextFileContent : TStringList;
tempStr, filename,SearchString : String;
i : Integer;
begin

  SearchString := 'net use y: ';
  filename:=  'c:\temp\output.txt';
  MyTextFileContent :=  TStringList.Create;
  try
    MyTextFileContent.LoadFromFile(filename);
  except
    Showmessage('Fehler..');
    MyTextFileContent.Free;
    exit;
  end;

  for i := 0 to MyTextFileContent.Count -1 do
    if pos(SearchString,MyTextFileContent[i]) <> 0 then
    begin
      tempStr := MyTextFileContent[i];
      delete(tempStr,1,pos(SearchString,MyTextFileContent[i])+
    length(SearchString)-1);
      if pos(' ', tempstr) <> 0 then  delete(tempstr,pos(' ',
    tempstr),1000);
      edit3.Text:=tempstr;  // AUSAGEBE!!!
      MyTextFileContent.Free;
      exit;
    end;
  MyTextFileContent.Free;
end;


Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt


Narses - Di 20.11.07 14:29

Moin!

Ich verstehe leider nicht, was du da tun willst. :nixweiss: Kannst du das nochmal verständlich erklären? :? Die Prozedur sucht doch nicht nur in der Datei, sondern ändert auch fleißig... :gruebel:

Abgesehen davon ist dein Code "kaputt", da du die Prozedur verlässt, bevor du die Stringliste wieder freigibst! :shock:

cu
Narses


Marc. - Di 20.11.07 15:00

Ich finde Dein SearchString ähnelt sehr dem StringReplace, wenn man die Parameter betrachtet.
Ansonsten muss ich mich leider Narses anschließen. :?

grüße,
Marc


Gausi - Di 20.11.07 15:05

Die triviale Möglichkeit wäre, einfach zwei Durchläufe mit Pos zu machen. Im ersten sucht man den einen String, im zweiten den anderen. :nixweiss:

Es gibt zwar auch Algorithmen, die simultan nach mehreren Strings suchen können, aber die sind nicht unbedingt ganz so einfach in zwei Zeilen implementiert.


fuba - Mi 21.11.07 08:26

schau dir mal diese funktion an:

Suche in: Delphi-Forum, Delphi-Library STRINGREPLACE
Suche im MSDN STRINGREPLACE