Entwickler-Ecke

Dateizugriff - Text File auslesen und verarbeiten


Corvin - So 23.02.03 22:56
Titel: Text File auslesen und verarbeiten
Hi :)
Ich möchte gerne eine Txt Datei auslesen und gucken ob da ein spezifischer Wert drinsteht.
Wenn der Wert drinsteht dann lass ich ihn dort, wenn nicht soll er reingeschrieben werden. Hab schon was probiert aber gefunzt hat's nich :(.
Danke für die Antworten. :D


Alibi - So 23.02.03 22:59

Und was hast du probiert? Poste mal die Zeilen.


Delete - So 23.02.03 23:04


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  sl : TStringLis;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile('c:\test.txt');
    if pos('Luckie', sl.Text) = 0 then
      sl.Add('Luckie')
    else
      ShowMessage('Juhu, Luckie ist schon drin.');
  finally
    sl.Free;
  end;
end;


Corvin - So 23.02.03 23:14

THX!
Aber anstatt 'Luckie' (;)) würde ich gerne einen Integer nehmen.
Der Integerwert ist dabei nicht statisch, also das ist in einer for-Schleife wo jedesmal geprüft wird ob der Wert schon in der txt Datei ist.
Kann ich auch, bei mir heißts iA, nach Integer bzw. Variablen suchen?
Nochwas: kann die Datei auch relativ angegeben werden? Sie ist im gleichen Ordner wie die exe.


Delete - So 23.02.03 23:23

IntToStr().

Man, da müßte ich ja jetzt nachdenken und das am Sonntagabend. Laß dir was einfallen. Deiner Fantasie sind keine Grenzen gesetzt.

ExtractFilepath, ParamStr(0), ...


Corvin - So 23.02.03 23:30

Ich dachte das das zwischen '' gesucht wird wie es dasteht!
Oder kann ich die '' weglassen und den String hinschreiben?

Quelltext
1:
2:
sA:=InttoStr(iA);
if pos(sA, sl.Text) then
...

Sorry für die Noobfragen.


Delete - So 23.02.03 23:33

Hä, wie jetzt?

Aber sag mal meckert der Kompiler nicht bei der if-Abfrage, so wie sie jetzt da steht?


Corvin - So 23.02.03 23:42

Ich wollte nur auf das pos() hinaus. Dass da ein end; fehlt ist mir klar :).
Ich will ja jetzt nicht mit nem festen Wert suchen, den man auch als String
zwischen die zwei '' schreiben kann (pos('Luckie', sl.text))
Ich will aber eine Variable nehmen. Muss ich jetzt die '' weglassen und den Int Wert in einen String (bei mir jetzt sA durch InttoStr()) wandeln und ihn dann einsetzen?
-> pos(sA, sl.Text) / pos('Luckie', sl.Text)


Delete - So 23.02.03 23:47

Autsch. Da fehlen aber noch jede Menge Grundlagen. Ja wann du eine String-Variable einsetzt, mußt du die '' weglassen.

Und ich meinte auch nicht das end;. pos liefert nämlich einen Integer zurück und kein Boolean.


Corvin - So 23.02.03 23:49

K, das genügt mir doch schon. Thx.
Immer an meine Sig denken ;).