Entwickler-Ecke
Dateizugriff - *.txt auslesen???
Erzengel - Mo 12.01.04 14:00
Titel: *.txt auslesen???
Hallo,
Habe ein kleine Probelm in meinem Programm. Der User soll seinen Namen, Kürzel, USER-ID, Host und das Password in Edit felder eintragen und es abspeichern. Bei nächten start sollen sich aber die Felder mit den zuletzt eingetragenen Daten wieder füllen, ohne Button.
1. Wo kommt der Quelltext für das laden hin
2. Das habe ich bereit schon gemacht klappt aber nicht so ganz
Inhalt der txt-Datei
Quelltext
1: 2: 3: 4: 5:
| Max Mustermann mustermann 192.168.2.1 password Benutzerkennung |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var i: integer; s: TStringList; begin try s:= TStringList.Create; s.LoadFromFile('konto1.txt'); for i:=1 to 5 do (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := s[i]; finally s.Free; end; end; |
Hoffe das da eine schnelle Lösung zufinden ist. Danke im voraus.
Klabautermann - Mo 12.01.04 14:12
Hallo,
1. Ich würde das Form Create ereignis vorschlagen.
2. Was klappt denn nicht?
Gruß
Klabautermann
Erzengel - Mo 12.01.04 14:21
Lösung 1. angenommen
2. Läd es nicht rein. Krieg eine Fehlermeldung.
Der Index der Liste überschreitet das Maximum (5)
ShiKai - Mo 12.01.04 14:34
als tipp, du willst das passwort aber nicht plain-text in einer text-datei speichern, oder?
zu deinem "problem", du weißt schon, dass eine string-liste immer mit dem index 0 anfängt, und das letzte item an der Position Pred(Count) steht, oder?
bitte, vor dem fragenstellen immer erst die hilfe (in delphi einfach auf F1 klicken) zu rate ziehen...
wfg,
ShiKai
Erzengel - Mo 12.01.04 14:37
:D das password wird nachher noch verschlüßelt.
Komm aber imemr noch nicht dahinter warum es nicht geht. :oops:
Andi1982 - Mo 12.01.04 14:42
Hi,
mach bei deiner schleife mal:
Vielleicht geht das ja!!
Erzengel - Mo 12.01.04 14:47
das funktioniert aber er schiebt die ganzen Zeilen dann höher.
und die erste Zeile Max Mustermann erscheit gar nicht
Andi1982 - Mo 12.01.04 14:58
Ja logisch, wahrscheinlich hast du kein edit-feld das Edit 0 heißt!! du müsstest dann folgendes tun:
Delphi-Quelltext
1: 2:
| for i:=0 to 4 do (FindComponent('Edit' + IntToStr(i + 1)) as TEdit).Text := s[i]; |
das müsst gehen oder??
Erzengel - Mo 12.01.04 15:09
Habe die Lösung gefunden.
Problem war er konnte die erste reihe nicht lesen im txt.
beim speichern muße ich einfach for i:=0 to 5 do einsetzen
und beim laden for i:=0 to 5 do
danke für mitdenken
Klabautermann - Mo 12.01.04 15:22
Hallo,
generell solltest du es vermeiden mit festen (ober)grenzen zu Arbeiten. Wenn du bei einer Stringlisste alle Elemente bearbeiten willst, dann sollte das so aussehen:
Delphi-Quelltext
1:
| FOR i := 0 TO MyStringList.Count - 1 DO |
wenn du nur die ersten Elemente nutzt, dann solltest du wenigstens eine Sicherheitsabfrage vorher durchzuführen_
Delphi-Quelltext
1: 2:
| IF MyStringList.Count > 4 THEN FOR i := 0 TO 4 DO |
Gruß
Klabautermann
ShiKai - Mo 12.01.04 15:24
oh man...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var Index : Integer; MaxIndex : Integer; StringList : TStringList; begin StringList := TStringList.Create; try StringList.LoadFromFile(ExtractFilePath(Application.ExeName) + 'konto1.txt');
if (StringList.Count >= 5) then MaxIndex := 5 else MaxIndex := StringList.Count;
for Index := 1 to MaxIndex do TEdit(FindComponent('Edit' + IntToStr(Index))).Text := StringList[Pred(Index)]; finally StringList.Free; end; end; |
mehr nicht...
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt
Erzengel - Mo 12.01.04 15:46
kukuk es geht schon. hab die lösung schon gefunden.
habe aber ein anders kleine problem gefunden.
Delphi-Quelltext
1:
| FileName :='\\ibasserver\ELOProf\Global\Postbox\Hier soll das edtit erscheien\'+ Zeit + '_' + inttostr(counter) +'.tif'; |
Wie kann ich nur den Text von dem Edit feld in die obengenannte zeile bringen. im text des edit feld steht: vk (soll ein ordener name sein)
unddazu steht das editfeld in form2. aber der qulltext soll in form1 erscheien. :oops:
voll kein plan
Andi1982 - Mo 12.01.04 15:53
hmm, du musst oben in Form1 die form2 als uses eintragen oder wie das heißt, und dann ganz einfach:
Delphi-Quelltext
1:
| FileName :='\\ibasserver\ELOProf\Global\Postbox\'+Form2.Edit2.Text+'\'+ Zeit + '_' + inttostr(counter) +'.tif'; |
Allerdings muss form2 bestehen zu dem zeitpunkt. Ansonsten machst du IN form 1 eine globale variable und usest die Fom1 in form2. und im onclose-Ereignis von form2 füllst du dann die globale variable in form1 mit dem inhalt des Editfeldes.
die übernimmst du dann so:
Delphi-Quelltext
1:
| FileName :='\\ibasserver\ELOProf\Global\Postbox\'+GlobaleVariable+'\'+ Zeit + '_' + inttostr(counter) +'.tif'; |
Ich hoffe das war verständlich :-)
Erzengel - Mo 12.01.04 16:01
Danke das funktionier auch ohne des uses.
habe bei mir nur die hochkomme vergessen 8('')
hatte es nur mit den ++ gemacht aber danke
Klabautermann - Mo 12.01.04 17:08
Hi,
| Erzengel hat folgendes geschrieben: |
| Danke das funktionier auch ohne des uses. |
mit sicherheit nicht. Wahrscheinlich hat Delphi dir das nur schon netterweise eingetragen.
Aber weshalb ich eigentlich Posten wollte.
Mache bitte für neue Fragen auch ein neues Topic auf. Sonst wird das ganze zu unübersichtlich. Steht übrigens auch so in den Richtlinien ;).
Gruß
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!