| Autor |
Beitrag |
Erzengel
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: Mo 12.01.04 14:00
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
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mo 12.01.04 14:12
Hallo,
1. Ich würde das Form Create ereignis vorschlagen.
2. Was klappt denn nicht?
Gruß
Klabautermann
|
|
Erzengel 
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: 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
      
Beiträge: 56
|
Verfasst: 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 
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: Mo 12.01.04 14:37
 das password wird nachher noch verschlüßelt.
Komm aber imemr noch nicht dahinter warum es nicht geht. 
|
|
Andi1982
      
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: Mo 12.01.04 14:42
Hi,
mach bei deiner schleife mal:
Delphi-Quelltext
Vielleicht geht das ja!!
_________________ Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
|
|
Erzengel 
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: 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
      
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: 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??
_________________ Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
|
|
Erzengel 
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: 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
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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
      
Beiträge: 56
|
Verfasst: 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 
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: 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.
voll kein plan
|
|
Andi1982
      
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: 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 
_________________ Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
|
|
Erzengel 
      
Beiträge: 99
Win 2000, WinXP
Delphi 5 Enterprise
|
Verfasst: 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
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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
|
|