Entwickler-Ecke
Dateizugriff - ini nur einmal schreiben (2)
rüdiger - Di 17.06.03 14:35
Titel: ini nur einmal schreiben (2)
Erstmal danke an alle die auf mein vorheriges post geschrieben haben! leider is mein problem immer noch nich gelöst!
Die Unit die mich zum verzweifeln bringt macht folgendes.
Mit einem Timer wird im Sekundentakt überprüft, ob eine Internet Verbindung besteht. Falls ja, werden die IPs(lokal. netzwerk, internet) in eine ini datei geschrieben. klappt auch alles wunderbar.
Mein Problem is das die ini datei jede sekunde geschrieben wird. is ja auch klar. aber genau das will ich nicht! die ini soll nur einmal geschrieben werden! Und das bekomme ich nich hin! Ich hab schon soviel ausprobiert, z.B. ein zusätzlicher String der in die ini geschrieben wird, der besagt das die ini fertig geschrieben is. oder noch eine variable die den false status registriert(sowie Matthias vorschlüg). ich hab andere schleifen probiert. sogar goto anweisungen. aber ich bekomm es einfach nich hin!
Bitte! Bitte helft mir!
Delphi-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:
| procedure TForm1.Timer1Timer(Sender: TObject); var Status: TConnectionType; ini: TIniFile; i: integer; k: integer; textzahl: string; begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'datei.ini'); Status := ConnectedToInternet; if Status = ctDialup then label1.caption := 'Im Internet!';
for i:= 0 to getips.count-1 do begin k:=i+1; textzahl:= IntToStr (k);
ini.writestring('Mein PC','IP'+textzahl,getips[i]); ini.writestring('Datum','ist',datetostr(date)); ini.writestring('Uhrzeit','ist',timetostr(time));
if Status = ctNone then label1.caption := 'Nicht im Internet!'; if Status = ctProxy then label1.caption := 'Proxyserver';
end; ini.free; end; |
kiwicht - Di 17.06.03 16:10
was ist mit einer Schleife nach folgendem Prinzip:
| Zitat: |
if INTERNET = TRUE and INI-GESCHRIEBEN = FALSE THEN
// SCHREIBE INI
// INI-GESCHRIEBEN = TRUE
Else DO NOTHING |
Jetzt wird die Schleife nur noch einmal durchlaufen, sollte die Ini noch nicht geschrieben worden sein.
Dann baust du noch ne proc ein, das INI-Geschrieben auf FALSE gesetzt wird, falls die Internet-Verbindung getrennt wird, damit die Daten beim nächsten LogIn aktualisiert werden.
Hoffe das ist einigermassen verständlich
rüdiger - Di 17.06.03 16:22
Danke! Ja sowas hab ich schon probiert. Ich bekomme die fehlermeldung:"Operator ist auf diesen Operandentyp nicht anwendbar".
Außerdem weiß ich nich wo ich INI-GESCHRIEBEN auf true setzen soll! Weil, mache ich es nachdem letzten "ini.writestring" dann läuft die schleife "i" nur einmal durch! Darf sie aber nich, weil ich will ja alle strings(IPs) aus der Stringlist(getips) schreiben lassen will.
Falls du zum ausprobieren den quellcode der gesamten unit möchtest, oder auch falls es jemand anders zum ausprobieren möchte, einfach kurz an ruediger@funbytes mailen.
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!