Autor Beitrag
Andysaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 10.10.02 13:00 
Hallo,
Ich möchte aus einer Datei ( *.html ist eine von Fortran erstellte Ausgabedatei ) an einer bestimmten Stelle lesen. In Textdateien bekomme ich das super mit readln hin. Die Daten sehen ungefähr so aus:

Temperatur °C : 20
Höhe m : 10

usw

Ich kann mit readln nur den ganzen Inhalt in eine Variable schreiben. Ich muss aber die Zahlenwerte einzeln und als Integer haben. Delphi trennt bei dieser Datei nicht nach Leerzeichen auf, dass heißt er schreibt alles in die erste Variable. Die Delphi Hilfe konnte nicht helfen :cry: aber hoffentlich ihr :D Wenn das Problem behoben ist habe ich noch 2 Fragen, aber dazu später.

MfG
Andy
JeanvanHees
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: Do 10.10.02 14:03 
Kannst du am besten selbst mit die pos und copy function rumspielen
also pos ist um die position von einem string auf zu suchen und copy um einen string aus einen string zu kriegen.
Eine vorbild:
Ich muß diese zeile: "Serial Number","IJF724580S"
haben, aber dann ohne die ' " ' und ' , ' lesezeichen.
Ich habe diese zeile in den string filestring stehen.
Ich hab mich eine function selbst gemacht womit ich suchen kan von eine bestimmte position
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function Getpos (parstring:String;Beginp:integer;Searchstr:String):integer;
var
tempstring:String;
begin
tempstring := copy(parstring,Beginp,Length(Filestring)-Beginp);
if pos(Searchstr,tempstring)=0
        then Getpos:=0
        else Getpos := pos(Searchstr,tempstring) + Beginp;
end;


Dan kann ich in diese function die zeile rauskriegen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function GetSerial:String;
var
Serpos,kompos,begpos,endpos:integer;
begin
Serpos:=pos('"Serial Number"',Filestring);
kompos:=getpos(Filestring,Serpos,',');
begpos:=getpos(Filestring,kompos,'"');
endpos:=getpos(Filestring,begpos+1,'"');
GetSerial:='Serial: '+copy(Filestring,begpos,endpos-(begpos+1));
end;


Hoffe das hilft, :wink2:

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!
Andysaw Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 10.10.02 14:10 
Vielen Dank für die Hilfestellung....

Kann ich dann einfach die Zahlen werte mit strtoint(Zahlenwert) in eine Integervariable umwandeln ? Wenn Du interesse hättest würde ich mich sehr darüber freuen, wenn Du ein kleines Beispielprogramm schreiben würdest und es mir per email schicken würdest...... Ich wäre tierisch glücklich darüber..... Hast Du auch Ahnung von DBCharts ? Und von einer möglichkeit zu checken das mein Zugriff auf eine Datei nur dann erfolgt wenn nicht auf sie zugegriffen wird?

Vielen Dank
MfG
Andy
JeanvanHees
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: Do 10.10.02 15:10 
Du kannst den wert indertat mit strtoint umwandeln.
Das mit dem programm schreiben mach ich nicht aus prinzip, weil du es dann nicht selber lernst. :mahn:
Ich habe keine ahnung von DBCharts. :nixweiss:

Zitat:
Und von einer möglichkeit zu checken das mein Zugriff auf eine
Datei nur dann erfolgt wenn nicht auf sie zugegriffen wird?

Ich weiß das du mit FmOpen/Read
/ShareDenyNone
und so weiter den accesability von dem file einstellen kanst.

Aber vielleicht kan jemand anders dich weiterhelfen.

Die copy-pos function hab ich selbst die letzte zeit viel gebraucht, darum weiß ich ziemlich was davon.

Tschuß :wave:

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!