Autor |
Beitrag |
Hanna Bubiskopf
Hält's aus hier
Beiträge: 14
XP
D7
|
Verfasst: Fr 04.02.05 14:34
ich muß dazu sagen, dass ich gerade erst mit Delphi 7 angefangen hab und vorher nur mit VB 6 geproggt habe.
vielleicht kennt jemand ein tutorial für dateifunktionen bzw. dateizugriffe?
oder jemand hat gerade parat was ich brauche: komplettes einlesen einer datei mit allen zeichen in einen string
_________________ Irgendwann muß man ja anfangen anzufangen.
|
|
st-matze
Beiträge: 138
Win 3.11, Win 95, Win 98, Win XP
D7 Ent, D6 Pers, (D5 Pers)
|
Verfasst: Fr 04.02.05 14:46
tue dies:
Delphi-Quelltext 1: 2:
| sl := TStringlist.create; sl.LoadfromFile('MyFile.txt'); |
in der eigenschaft
Delphi-Quelltext
hast du dann die komplette datei als string
|
|
MrSaint
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Fr 04.02.05 14:46
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var sInhalt, sTemp: string; fDatei: textfile; ... begin sInhalt := ''; AssignFile(fDatei, 'c:\blabla.txt'); Reset(fDatei); while not Eof(fDatei) do begin Readln(fDatei, sTemp); sInhalt := sInhalt + sTemp; end; CloseFile(fDatei); showmessage(sInhalt); end; |
MfG
MrSaint
EDIT: @st-matze: oder so
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 04.02.05 14:56
ich bevorzuge
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var fm: tfilestream; s: string; begin fm := tfilestream.create('C:\hallo.txt',fmopenread); setlength(s,fm.size); fm.read(s[1],fm.size); fm.free; end; |
1. weil tstringlist nicht #0 erfasst
2. weil zuviel speicher verbraucht wird wegen sInhalt := sInhalt + sTemp;, dann doch lieber BlockRead machen
|
|
MrSaint
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Fr 04.02.05 15:02
@uall@ogc:
musst du dann die Länge des Strings nicht auf fm.size + 1 setzen? oder steh ich grad auf'm Schlauch?
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 04.02.05 15:06
ne muss man nicht da s[1] das erste zeichen vom string ist
|
|
Hanna Bubiskopf
Hält's aus hier
Beiträge: 14
XP
D7
|
Verfasst: Fr 04.02.05 15:48
Titel: Vielen Dank! Ich habe es in folgende Funktion zusammengef.
Vielleicht braucht es ja später nochmal jemand
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function LoadFile(FilePath: String): String; var fm: tfilestream; s: string; begin fm := tfilestream.create(FilePath, fmopenread); setlength(s,fm.size); fm.read(s[1],fm.size); fm.free; Result:=s; end; |
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt.
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 04.02.05 17:40
naja würde dann noch "FilePath" durch "FileName" ersetzen und keine lokale varibale benutzen sondern result direkt ansprechen
setlength(result,fm.size);
weiß jetzt nicht ob delphi da unterscheidungen macht, aber dann muss man sich keine gedanken mehr machen
|
|
Sprint
Beiträge: 849
|
Verfasst: Fr 04.02.05 17:47
uall@ogc hat folgendes geschrieben: | naja würde dann noch "FilePath" durch "FileName" ersetzen [...] |
Und um ein const erweitern...
_________________ Ciao, Sprint.
|
|
Hanna Bubiskopf
Hält's aus hier
Beiträge: 14
XP
D7
|
Verfasst: Fr 04.02.05 19:09
|
|
Sprint
Beiträge: 849
|
Verfasst: Fr 04.02.05 19:39
_________________ Ciao, Sprint.
|
|
MitschL
Beiträge: 211
Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
|
Verfasst: Di 08.02.05 13:11
@Sprint: Ähm; deine LoadFile-Funktion funktioniert bei mir nicht.
TFileStream.Create erlaubt bei mir keine Handles
Hm. Ob das an Delphi 5 liegen kann?
gegrüßt!
_________________ "Bloßes Ignorieren ist noch keine Toleranz." (Theodor Fontane)
|
|
Sprint
Beiträge: 849
|
Verfasst: Di 08.02.05 17:09
MitschL hat folgendes geschrieben: | Ob das an Delphi 5 liegen kann? |
Ja. Liegt an Delphi 5.
_________________ Ciao, Sprint.
|
|