Autor |
Beitrag |
[SaWa]barrier23
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 02.03.06 13:06
ich würde gern ein kleines programm schreiben wo man besimmte dinge eingeben muss und das programm dann die eingegebenen werte in ein textfile speichert!
also zbsp im programm so
Label1 (zbsp. Name) : Edit1 (Zbsp Peter)
und im textfile soll es dann so aussehen
Name:Peter
ist das irgendwie für einen anfänger im delphi möglich? Moderiert von raziel: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 02.03.2006 um 12:23
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 02.03.06 13:12
Ja, in eine Datei kannst du wie auf den Bildschirm mit write/Writeln schreiben.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var datei: TextFile; begin AssignFile( datei, 'datei.txt'); Rewrite( datei); Write( datei, Label1.Caption); Write( datei, ':'); WriteLn( datei, Edit1.Text); ... |
_________________ Markus Kinzler.
Zuletzt bearbeitet von mkinzler am Do 02.03.06 13:28, insgesamt 1-mal bearbeitet
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 02.03.06 13:23
klingt gut!
gleich mal ausprobieren!fragt er mich dann auch nach dem pfad wo er die datei anlegt oder legt er die automatisch in das programm verzeichniss?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 02.03.06 13:31
Er legt es in den aktuellen Pfad, was normalerweise das Verzeichnis der Anwendung ist. Wenn aber zwischenzeitlich der Pfad gewechselt wurde, legt er es dort ab. Wenn du erzwingen willst, daß die datei im Pfad der Exe angelegt wird, kannst du das durch Änderung auf ExtractFilePath( Application.ExeName)+'datei.txt' bewerkstelligen. Wenn du den Pfad auswählen willst verwende einen Filedialog.
_________________ Markus Kinzler.
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 02.03.06 19:14
ok das funktiniert schon mal
nur wenn ich mein programm jetzt schließe und wieder aufmache will ich nicht das er die datei neu anlegt sondern unter dem text den er schon drin gespeichert hat weiter macht und nicht alles aus der datei löscht!
also sagen wir das programm schreibt den text "hallo" in die datei!dann schließe ich das programm!dann öffne ich es wieder und will das er "du" reinschreibt.also das dann "hallo du" drin steht.so wie es jetzt ist steht aber nur "du" drin
also hat wer eine lösung?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 02.03.06 19:48
Einfach das rewrite(...); durch append( ...); ersetzen
_________________ Markus Kinzler.
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 02.03.06 20:12
ok thx und jetzt eins noch!
hab jetzt 2 eingabefenster
Name: Edit1
Nachname : Edit2
nur wenn er das jetzt so macht setzt er sie in der textdatei genau nebeneinander!
ich möchte aber das er sie auch untereinander setzt
also nicht
PeterLustig
sondern
Peter
Lustig
|
|
Sinspin
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Do 02.03.06 20:20
verwende einfach anstatt von write(...) writeln(...). denn mit writeln(...) wird automatisch am ende der eingabe ein zeilenumbruch angehangen.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 02.03.06 20:35
jetzt hab ich ein neues problem!
Einfach das rewrite(...); durch append( ...); ersetzen
das hab ich gemacht nur wenn es die datei noch nicht gibt (sagen wir beim allerersten programm start) bringt er mir ologischer weise den fehler das es die datei noch nicht gibt!
wie umgehe ich das?
edit: jetzt bringt er mir auch bei vorhandener datei den fehler ?(
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 02.03.06 21:01
Beim ersten mal muß Rewrite aufgerufen werden, da Append() ein Fehler bringt, wenn die Datei noch nicht existiert.
Das kannst du durch einfügen von
Delphi-Quelltext 1:
| if not FileExists( ...) then Rewrite(...) else Append(...); |
machen
_________________ Markus Kinzler.
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Do 02.03.06 23:06
das will nicht so wirklich!
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var datei: TextFile; begin AssignFile( datei, 'datei.txt'); if not FileExists( datei) then Rewrite(datei) else Append(datei); Write( datei, Label1.Caption); Write( datei, ':'); Writeln( datei, Edit1.Text); |
was ist daran falsch?
Moderiert von raziel: Quote- durch Delphi-Tags ersetzt
|
|
klezmor
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Fr 03.03.06 00:16
Will nicht stören aber für sowas würde ich ini files verwenden erklärung siehe hier: www.dsdt.info/tutorials/ini/
_________________ "Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 03.03.06 03:37
Was auch nen Tick einfacher sein könnte:
TStringList.
TStringList kannst du wie die Lines Eigenschaft eines Memos benutzen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var s:TStringList; begin s:=TStringList.Creage; s.text:='hallo'; s.Add('hallo du'); s.SaveToFile('C:\asd.txt'); s.LoadFromFile('C:\asd.txt'); s.Free; end; |
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Fr 03.03.06 18:55
kannst du mir den quelltext noch mal an meinem bsp posten?
also mit einem label und einem edit-fenster
nur zur infos ich habe nicht nur eine abfrage sondern 32 label und 32 editfenster!
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Fr 03.03.06 19:06
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var datei: TextFile; begin AssignFile( datei, 'datei.txt'); if not FileExists ('datei.txt') then Rewrite(datei) else Append(datei); Write( datei, Label1.Caption); Write( datei, ':'); Writeln( datei, Edit1.Text); |
_________________ Ein Nutzer der Ecke
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Fr 03.03.06 23:53
machts auch.nur hab ich dann noch einen befehl das er alles löscht aber da gibts nenn fehler den ich noch sleber beheben kann!
nur wie mach ich es das er die textdatei mit dem name speichert den ich bei name eingegeben!
also name: peter
und die textdatei heißt dann peter.txt!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 04.03.06 01:24
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Sa 04.03.06 09:49
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Sa 04.03.06 09:56
Klick mal Oben Rechts auf Hilfe dort wird alles beschrieben.
|
|
[SaWa]barrier23 
Hält's aus hier
Beiträge: 15
|
Verfasst: Sa 04.03.06 12:44
ok geht!könnte man den thread mal umbennen und mir die frage hier noch erklären!
wie kann ich die datei jetzt wieder laden?
also in der textdatei steht
Name: Peter
und dann soll er Peter ins Edit1 fenster laden
ist das ohne viel aufwand machbar?
|
|