Autor |
Beitrag |
beljo
      
Beiträge: 129
|
Verfasst: Fr 10.03.06 14:10
Hallo zusammen,
ich habe folgendes Problem.
Ich möchte gerne Die Strings aus meinen Eingabe- bzw Ausgabefeldern (textfelder) in eine Datei ablegen und auch meine Ein- und Ausgabefelder auf diese weise wieder auffüllen.Größtes Problem bei der Sache, die Gespeicherten Dateien sollen auch zusätzlich Text beinhalten.
Bin leider der totale Amateur in Delphi,würde aber dazu verdonnert dies zu machen.
Das ausgeben in eine Datei habe ich schon hinbekommen.(eher schlecht als recht). Leider klappt das auslesen bzw. in die Textfelder einfügen überhaupt nicht.(Fehlermeldung:[Error] Unit1.pas(272): Record, object or class type required)
Bitte formuliert die Lösungsansätze nicht in eine unverständliche Fachsprache,da ich es nicht so drauf habe.
hier mein Ansatz.
hier der Quellcode: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| procedure TForm1.Button2Click(Sender: TObject); begin anweisung:=TstringList.Create; anweisung.add(' Zeigerdiagramme für permanenterregte Sybchronmaschine (rotorfeste Koordinaten) '); anweisung.add(''); anweisung.add( 'Strangstrom Id in A: ' ); anweisung.add('edit1.text'); anweisung.Add( 'Strangstrom Iq in A: ' ); anweisung.add('edit2.text'); anweisung.add('Strangspannung Ud in V: '); anweisung.add('edit3.text'); anweisung.add('Strangspannung Uq in V: ' ); anweisung.add('edit4.text'); anweisung.Add('Polradspannung Up in V: ' ); anweisung.add('edit5.text'); anweisung.add('Phasenwinkel phi in °: ' ); anweisung.add('edit6.text'); anweisung.add('Stromwinkel beta in °: ' ); anweisung.add('edit7.text'); anweisung.Add('Polaradwinkel gamma in °: ' ); anweisung.add('edit8.text'); anweisung.add('Winkel zwischen Rotordurchflutung und Ständerdurchflutung alpha in °: '); anweisung.add('edit9.text'); anweisung.add('Betrag des Stromzeigers: '); anweisung.add('edit10.text'); anweisung.Add('Betrag des Spannungszeigers: '); anweisung.add('edit11.text'); anweisung.Add('Phasenverschiebung des Stromzeigers: ' ); anweisung.add('edit12.text'); anweisung.add('Pahsenverschiebung des Spannungszeigers: '); anweisung.add('edit13.text'); savedialog1.execute; anweisung.savetofile(savedialog1.FileName); end;
procedure TForm1.Button4Click(Sender: TObject); var point,merk1,merk2,merk3: integer; begin anweisung:=TStringList.Create; anweisung.LoadfromFile(opendialog1.FileName); for piont:=0 to anweisung.Count-1 do begin merk1:= anweisung.IndexOf('Strangstrom Id in A: ' ); merk2:= anweisung.IndexOf('Strangstrom Iq in A: ' ); merk3:= anweisung.IndexOf('Strangspannung Ud in V: ' ); end; for point:=merk1+1 to merk2-1 do edit1.text.add(anweisung.strings[x]); for point:=merk2+1 to merk3-1 do edit2.text.add(anweisung.strings[x]); for point:=merk3+1 to merk3-1 do edit3.text.add(anweisung.strings[x]); end; end;
end. |
vielen Dank im Vorraus
Einloggen, um Attachments anzusehen!
|
|
beljo 
      
Beiträge: 129
|
Verfasst: Fr 10.03.06 14:26
Hallo nochmal,
ich hatte mich etwas verschreiben,
hier der richtige Quelltext: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| procedure TForm1.Button2Click(Sender: TObject); begin anweisung:=TstringList.Create; anweisung.add(' Zeigerdiagramme für permanenterregte Sybchronmaschine (rotorfeste Koordinaten) '); anweisung.add(''); anweisung.add( 'Strangstrom Id in A: ' ); anweisung.add('edit1.text'); anweisung.Add( 'Strangstrom Iq in A: ' ); anweisung.add('edit2.text'); anweisung.add('Strangspannung Ud in V: '); anweisung.add('edit3.text'); anweisung.add('Strangspannung Uq in V: ' ); anweisung.add('edit4.text'); anweisung.Add('Polradspannung Up in V: ' ); anweisung.add('edit5.text'); anweisung.add('Phasenwinkel phi in °: ' ); anweisung.add('edit6.text'); anweisung.add('Stromwinkel beta in °: ' ); anweisung.add('edit7.text'); anweisung.Add('Polaradwinkel gamma in °: ' ); anweisung.add('edit8.text'); anweisung.add('Winkel zwischen Rotordurchflutung und Ständerdurchflutung alpha in °: '); anweisung.add('edit9.text'); anweisung.add('Betrag des Stromzeigers: '); anweisung.add('edit10.text'); anweisung.Add('Betrag des Spannungszeigers: '); anweisung.add('edit11.text'); anweisung.Add('Phasenverschiebung des Stromzeigers: ' ); anweisung.add('edit12.text'); anweisung.add('Pahsenverschiebung des Spannungszeigers: '); anweisung.add('edit13.text'); savedialog1.execute; anweisung.savetofile(savedialog1.FileName); end;
procedure TForm1.Button4Click(Sender: TObject); var piont,merk1,merk2,merk3: integer; begin anweisung:=TStringList.Create; anweisung.LoadfromFile(opendialog1.FileName); for piont:=0 to anweisung.Count-1 do begin merk1:= anweisung.IndexOf('Strangstrom Id in A: ' ); merk2:= anweisung.IndexOf('Strangstrom Iq in A: ' ); merk3:= anweisung.IndexOf('Strangspannung Ud in V: ' ); end; for piont:=merk1+1 to merk2-1 do edit1.text.add(anweisung.strings[piont]); for piont:=merk2+1 to merk3-1 do edit2.text.add(anweisung.strings[piont]); for piont:=merk3+1 to merk3-1 do edit3.text.add(anweisung.strings[piont]); end; end;
end. | nochmals danke im vorraus
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 10.03.06 15:12
Hallo und  in der Entwickler-Ecke!
Auch wenn ich es unschön finde, andere Leute dazu aufzufordern, ihren Code komplett umzuschreiben, aber in dem Fall wäre es das einfachste
Schau dir mal IniFiles an. Da geht das viel einfacher mit:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| ini := TMemIniFile.Create(Dateiname); Edit1.text := ini.readString('Edits','Strangstrom_Id_in_A','' ); ini.free;
ini := TMemIniFile.Create(Dateiname); ini.writeString('Edits','Strangstrom_Id_in_A',Edit1.text); ini.UpdateFile, ini.free; |
_________________ We are, we were and will not be.
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Fr 10.03.06 15:14
erstma was anderes...es gibt hier ne editfunktion (das blatt mit der schere),da musst du nicht (fast) das gleiche nochmal posten
versteh ich das richtig? dein problem ist, dass du eine datei hast, in der ganz viel zeug steht und unter anderem auch die sachen, die für dein programm wichtig sind?
also
bla bla
bla
das hier
ist wichtig
bla bla
dann würde ich schonmal grundsätzlich am anfang und am ende von dem,was du speicherst irgendeine bestimmte zeichenkombination mit wiedererkennungswert einbauen... damit kannst du die datei einlesen und filterst dir nur das raus in deine stringlist, was du auch wirklich brauchst...damit würde ich anfangen... und dann eine routine entwickeln, wie du die bestimmten zeilen jetzt rausbekommst für deine editfelder...
//Edit: zu langsam... und Gausis Lösung scheint mir sinnvoller zu sein...
|
|
beljo 
      
Beiträge: 129
|
Verfasst: Fr 10.03.06 16:33
ja Miri,
Du hast mein Problem richtig erkannt, ich habe ja auch schon eine Routine geschrieben um bla bla rauszufiltern (siehe quellcode Zeile45-52 oben). das einzige Problem an dem ganzen ist halt, das es mir nicht möglich ist die Text-felder mit dem strings aus der datei zu füllen.
der vorschlag von Gaußmann ist ja gut aber er erfordert das ich mein Programm komplett umschreibe
vielleicht hat ja jemand noch eine Idee wie ich die Werte ohne Probleme einlesen kann.
|
|
beljo 
      
Beiträge: 129
|
Verfasst: Fr 10.03.06 16:37
mein Problem befindet sich, denke ich wirklich nur in den letzten Zeilen,
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 10.03.06 16:41
Ich rate mal das es eigentlich so heißen müsste:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button4Click(Sender: TObject); var x, x2,m1,m2,m3: integer; begin anweisung:=TStringList.Create; anweisung.LoadfromFile(opendialog1.FileName); for X:=0 to anweisung.Count-1 do begin m1:= anweisung.IndexOf('Strangstrom Id in A: ' ); m2:= anweisung.IndexOf('Strangstrom Iq in A: ' ); m3:= anweisung.IndexOf('Strangspannung Ud in V: ' ); for x2:=m1+1 to m2-1 do edit1.text.add(anweisung.strings[x]); for X2:=m2+1 to m3-1 do edit2.text.add(anweisung.strings[x]); for x2:=m3+1 to m3-1 do edit3.text.add(anweisung.strings[x]); end; end; |
[edit]
[s]Weil sonst wäre die erste Schleife unsinnig.[/s]
Sie ist auch so unnötig!
[/edit]
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button4Click(Sender: TObject); var x, m1,m2,m3: integer; begin anweisung:=TStringList.Create; anweisung.LoadfromFile(opendialog1.FileName); m1:= anweisung.IndexOf('Strangstrom Id in A: ' ); m2:= anweisung.IndexOf('Strangstrom Iq in A: ' ); m3:= anweisung.IndexOf('Strangspannung Ud in V: ' ); for x:=m1+1 to m2-1 do edit1.text.add(anweisung.strings[x]); for X:=m2+1 to m3-1 do edit2.text.add(anweisung.strings[x]); for x:=m3+1 to m3-1 do edit3.text.add(anweisung.strings[x]); end; |
_________________ Markus Kinzler.
|
|
beljo 
      
Beiträge: 129
|
Verfasst: Fr 10.03.06 17:32
danke marcus,
leider ist aber das problem nicht gelöst in den letzten zeilen, beim einlesen
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button4Click(Sender: TObject); var x, m1,m2,m3: integer; begin anweisung:=TStringList.Create; anweisung.LoadfromFile(opendialog1.FileName); m1:= anweisung.IndexOf('Strangstrom Id in A: ' ); m2:= anweisung.IndexOf('Strangstrom Iq in A: ' ); m3:= anweisung.IndexOf('Strangspannung Ud in V: ' ); for x:=m1+1 to m2-1 do edit1.text.add(anweisung.strings[x]); for X:=m2+1 to m3-1 do edit2.text.add(anweisung.strings[x]); for x:=m3+1 to m3-1 do edit3.text.add(anweisung.strings[x]); end; |
id dieser Zeile : for x:=m1+1 to m2-1 do edit1.text.add(anweisung.strings[x]);
kommt die Fehlermeldung [Error] Unit1.pas(269): Record, object or class type required.
ich hab schon eine menge veruscht aber ICH KRIEGE DIES VERDAMMTEN STRINGS EINFACH NICHT IN EIN TEXTFELD,langsam verzweifele ich.es muss doch möglich sein aus der Liste auch Tstrings in das editled einzulesen.
|
|
beljo 
      
Beiträge: 129
|
Verfasst: Sa 11.03.06 16:44
Für alle die es Interesiert es geht nicht so ohne weiters mit einer Liste.
deshalb habe ich ini-Files verwendet.
Ich kann auch nur jedem Anfänger empfelen ini-Files zu benutzen, da hier der Suchalgorithmus kommplett entfällt.
|
|
|