![]() |
Assignfile: Anfänger versteht das Konzept nicht.
Hallo an alle
Ich bin Anfänger in Delphi, und brauche eure Hilfe. :?: Ich verstehe das Konzept von Assignfile nicht. Assignfile(f,Filename) Filename = Dateiname incl. Pfad (a:\TestFile.txt) ist klar. :) f = stellt die verbindung zwische der Datei(TestFile.txt)dar. :roll: aber die Verbindung von f zu meinen Daten verstehe ich nicht. :cry: Konkret will ich ein zweidinesionales Array (Array[1..200,1..3] of String) auf Platte bannen und wieder lesen. |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Kuck dir doch noch mal AssignFile an, konkret den zwieten Parameter.
|
Re: Assignfile: Anfänger versteht das Konzept nicht.
Das ging schnell!
leider versteh ich nicht was du meinst. sorry |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Zitat:
...:cat:... |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Zitat:
Zitat:
|
Re: Assignfile: Anfänger versteht das Konzept nicht.
Also, ich würde es mit einer StringListe lösen. Die Arbeit mit AssignFile gehört eínfach zur Vergangenheit und gilt als nicht mehr empfehlenswert, um es milde auszudrücken.
Delphi-Quellcode:
...:cat:...
var
DeinArray: Array[1..200,1..3] of String; I, J: Integer; begin ... // speichern with TStringList.Create do try for I := Low(DeinArray) to High(DeinArray) do for J := Low(DeinArray[I]) to High(DeinArray[I]) do Add(DeinArray[I, J]); SaveToFile('a:\TestFile.txt'); finally Free; end; ... |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Ich glaube das habe ich verstanden.
anders als mit Assignfile speicher ich die gesamte Gatei und nicht nur Fragmente. Ich frage mich aber warum meine Literatur nur auf assignfile aufbaut. Ist immerhin auch alles für Delphi 3. And by the way to lukie: Ich bin wahrscheinlich nur zu blöd aber ich habe dich immer noch nicht verstanden Gruß MrFish |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Zu Zeiten von Delphi 3 gab es zwar auch schon die StringListen, aber damals war man noch "flexibler" :-D Im Ernst, in den letzten Jahren hat sich die Ansicht zum Dateihandling, vor allem durch das bessere Caching seit Windows 2000, geändert. Für die "Zeit von Delphi 3" ist die Lösung akzeptabel, aber man sollte versuchen davon wegzukommen, auch mit Delphi 3.
Eine Ausnahme ist vielleicht, wenn man die Datei nur öffnet, einen Datensatz ranhängt und wieder schließt, dann wäre eine StringListe ein wirklicher Performance-Verlust. ...:cat:... |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Danke
du hast mir sehr weitergeholfen. Du sagst das Assignfile immer noch sinnvoll sein kann. Hast du vielleicht noch einen Tip wie ich das Konzept verstehen kann? |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Das Konzept ist eigentlich ganz simpel.
Mit AssignFile wird einer Dateivariablen der Pfad einer Datei zugewiesen. Nicht mehr, nicht weniger. Erst bei einem Aufruf von Reset, Rewrite oder Append wird die Datei wirklich geöffnet. Es kann also erst hier auch ein Fehler auftreten, wenn die Datei beispielsweise bereits geöffnet oder gar nicht vorhanden ist. |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Danke Chewie
Assignfile(f,Filename) Filename hab ich verstanden. mit f hab ich mein Problem. meine Daten sind in der Variabelen: TACListe : Array[1..200,1..3] of String; gespeichert. wie kriege ich das mit f in verbindung? |
Re: Assignfile: Anfänger versteht das Konzept nicht.
ich gehe mal davon aus das du weisst wie du an den inhalt von array kommst -> ansonsten guck mal bei sakuras post wie man auf array's zugreif
dewegen verweden ich hier nur einen string; der einfachheit halber
Delphi-Quellcode:
was wird hier gemacht
var
f : TextFile; s : string; begin s := 'Hallo'; AssignFile(f,'c:\meinedatei.mein'); rewrite(f); WriteLn(f,s); closefile(f); end; f ist eine variable vom typ TextFile; sie könnte auch vom typ file sein oder einen selbstdefinierten typ ( was ich in deinem fall bevorzugen würde ) s ist vom typ string und erhält die zeichenkette hallo assignfile sagt der variablen f das sie auf die datei c:\meinedatei.mein "zeigen" soll rewrite erstellt eine neue datei mit dem angegebenen namen ( siehe assignfile ) öffnet die datei und positioniert den datenzeiger an den anfang ( muss ja auch sein, wäre schlecht du fägst in der 2. zeile zu schreiben an ;) ) Writeln schreibt nun in die datei f den wert s man könnte auch write benutzen, wirteln hängt nur ein CRL an die zeile an mit closefile wird die datei geschlossen, damit andere anwendungen daraufzugreifen können was noch interessant dabei ist, reset, append, seek, write, read, readln und nicht die systemschalter vergessn {$i-} und {$i+} |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Habe dieses Thema hir gefunden bei mir klappt es nun auch alles aber nun schreibt er mir immer eine Zahl in die txt
wie kann ich es machen das er jedesmal eine neue reihe anfängt??? P.S. Mir ist klar das dies von 2003 ist aber vielleicht kann mir das ja jemand beantworten |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Immer langsam mit den jungen Pferden. Du solltest uns vielleicht erst einmal mitteilen, was Du in welcher Form in Deiner Datei haben möchtest und wie Dein bisheriger Quelltext aussieht ;)
|
Re: Assignfile: Anfänger versteht das Konzept nicht.
Delphi-Quellcode:
begin
i2cOut(0); i2cStop; i2cStart; i2cOut(b + 1); Temperatur := i2cLM75_in; eLM75_Temp.Text := Formatfloat('##,##0.00',Temperatur); AssignFile(f,'c:\test.txt'); rewrite(f); WriteLn(f,eLM75_Temp.text); closefile(f); End So sieht es aus. Die Temperatur schreibt er nun in die txt aber er überschreibt mir den wert immer wieder. Ich möchte aber das die werte untereinander geschrieben werden. |
Re: Assignfile: Anfänger versteht das Konzept nicht.
Hallo,
sieh mal unter carriage return, line feed ! Weiter den Unterschied von Write und WriteLN ! Das gleich auch unter read..... Gruss Kally |
Re: Assignfile: Anfänger versteht das Konzept nicht.
@morpheus090682
statt
Delphi-Quellcode:
versuche mal
rewrite(f)
Delphi-Quellcode:
Gruß
append(f)
|
Re: Assignfile: Anfänger versteht das Konzept nicht.
OK werde ich mal Testen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz