Entwickler-Ecke

Dateizugriff - Textdatei schreiben ohne Inhalt zu überschreiben?


Smile - Fr 27.02.04 21:28
Titel: Textdatei schreiben ohne Inhalt zu überschreiben?
Hi

ich habe mir einen Windowswecker programmiert

[url]http://www.stephansweb.de/wecker[/url]

Ich wollte nun die eingegeben Weckzeiten wie in der Listbox auch in der ini (oder txt) speichern,
aber zeilenweise untereinander und die bereits vorhanden Zeiten nicht überschreiben.
Dies sollte mit jedem klick auf "einstellen" geschehen.
Wie kann ich das anstellen?
Und wie kann ich diese Zeiten wieder so auslesen das sie unter einander in der Listbox stehen?

Bitte helft mir!

Danke
Ciao

Moderiert von user profile iconTino: "Hilfe" aus dem Titel entfernt.


Delete - Fr 27.02.04 21:32

AssignFiel, Append, writeln, CloseFile


Smile - Fr 27.02.04 21:33

Luckie hat folgendes geschrieben:
AssignFiel, Append, writeln, CloseFile


hmm könntest du das einwenig genauer sagen? ;)
append sagt mir gerade garnix
das muss es wohl sein oder :P


Delete - Fr 27.02.04 21:36

Kuck mal in Merlin's Zauberbuch auch als Hilfe bekannt :roll:


rokdd - Fr 27.02.04 21:37

moin,
heißt so viel wie anhängen. appendere kommt aus dem lateinischen. aber warum nutzt du nicht deine hilfe oder das internet??

rokdd


Smile - Fr 27.02.04 21:39

Luckie hat folgendes geschrieben:
Kuck mal in Merlin's Zauberbuch auch als Hilfe bekannt :roll:


jetzt hab dich nicht so

das habe ich schon aus dem forum hier:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
    GetDir(0,DirNow);  //Aktuelles Verzeichnis festlegen
    If not FileExists(DirNow+'\save.ini'Then FileCreate('save.ini');
    //1. Zeile von Save.ini lesen
    AssignFile(datei,DirNow+'\save.ini');
    ReWrite(datei);
    Writeln(datei,Edit1.Text);
    CloseFile(datei);


das soll er schreiben, funktioniert auch, aber er überschreibt halt! :(

wenn ich Append(datei);
dazwischen schreibe geschieht auch nix anderes


Smile - Fr 27.02.04 21:41

rokdd hat folgendes geschrieben:
moin,
heißt so viel wie anhängen. appendere kommt aus dem lateinischen. aber warum nutzt du nicht deine hilfe oder das internet??

rokdd


hi

da ich nix gefunden habe, Append kannte ich nicht!
gebt mir links wenn ihr es mir schon nicht sagen woltl!


Delete - Fr 27.02.04 21:44

Ist es so schwer mal die Schlüsselwörter die in dem Code auftauchen mal in der Hilfe nachzuschlagen? Und zusätzlich eben die die ich dir gegeben habe?

Ich habe mich nicht so, aber ich habe keine Lust dir alles vorzukauen. Etwas Eigeninitiative wäre wünschens wert. Du erwartest ja auch, dass wir uns mit deinem Problem auseinanderstezten, da dürfen wir doch wohl auch erwarten, dass du dich mal ein wenihg mit der Huilfe, die wir dir geben, auseinandersetzt. :roll:

Desweiteren vergess das GetDir. Das ist Mist. Gib lieber den absoluten Pfad an. Dass das aktuelle Verzeichnis das Verzeichnis mit deiner Datei ist, ist purer Zufall.


rokdd - Fr 27.02.04 21:44

wir wollen und haben dir ja geholfen. hast du denn jetzt mal nachgeschaut! ich bin in den paar minuten seit deinem letzten posting schon fündig geworden!

rokdd


Anonymous - Fr 27.02.04 21:44

Das hier funktioniert bei mir einwandfrei:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
 f: TextFile;
begin
 AssignFile(f, 'test.txt');
 Append(f);
 try
  Writeln(f, 'blubbel ;)');
  Flush(f);
 finally
  CloseFile(f);
 end;
end;


Delete - Fr 27.02.04 21:47

Danke, womit du alle Bestrebungen von uns, ihn zu einen Programmierer zu machen, der sich auch mal selbst zu helfen weiß, zu nichte gemacht hast. :roll:


rokdd - Fr 27.02.04 21:49

nicht schlecht alle zur gleichen zeit gepostet! :wink:

(@Flan: du verrätst wieder mal alles! ) EDIT: Site war noch nciht richtig aktualisiert beim Schreiben. Lucky hat ja schon alles vorweggenommen!(Schließe mich dir vollkommen an!) Soorrrry!

rokdd


Anonymous - Fr 27.02.04 21:53

@rokdd: kann ja mal passieren ; )

@Luckie: Bitte verzeiht mir, es soll nicht wieder vorkommen. :roll:

@smile: Der Fehler in deinem Code war, dass du kein Append, sondern Rewrite benutzt hast. Dann kann er ja schlecht wissen, dass du den Text anhängen willst.


Delete - Fr 27.02.04 21:55

obbschtkuche hat folgendes geschrieben:

@Luckie: Bitte verzeiht mir, es soll nicht wieder vorkommen. :roll:

Mir soll es egal sein. Nur immer gleich Copy and Paste fähige Lösungen zu posten kann es, meiner Meinung nach nicht sein. damit ist ihm beim nächsten mal oder wenn es Problem mit dem Code gibt nicht geholfen. Denn dann steht er wieder wie der Ochs vor dem Berg und weiß nicht weiter.


Smile - Fr 27.02.04 21:56

hmm ok

ich danke dir
noch eine Frage wie kann ich diese Datei nun wieder so auslesen das die Zeilen in meiner Listbox untereinander stehen.

ps: meine Hilfe ist Englisch, da kommt net viel raus hehe! ;)


Anonymous - Fr 27.02.04 21:58

Hmm... wenn ich mal überlege wie das bei mir war... ich hatte ein Buch, und hab mir daraus Quelltexte abgetippt. Wenn ich später mal ein Problem hatte, was in die Richtung ging, wusste ich natürlich nichts mehr von der Lösung, aber wenigstens wo ich nachschlage konnte. Und wenn man das ein paar mal gemacht hat, weiß man auch wie es geht :mrgreen:

[EDIT]

Nimm ReadLn(f, stringvar) (Zeile auslesen) und eof(f) (Feststellen ob Leseposition am Ende der Datei steht) oder direkt TStringList.


Smile - Fr 27.02.04 21:59

obbschtkuche hat folgendes geschrieben:
Hmm... wenn ich mal überlege wie das bei mir war... ich hatte ein Buch, und hab mir daraus Quelltexte abgetippt. Wenn ich später mal ein Problem hatte, was in die Richtung ging, wusste ich natürlich nichts mehr von der Lösung, aber wenigstens wo ich nachschlage konnte. Und wenn man das ein paar mal gemacht hat, weiß man auch wie es geht :mrgreen:


yeah wenigstens einer der mich versteht hehe
sollte mir auch ein Buch holen *gg*

wie kann ich das nun mit dem Lesen machen?


rokdd - Fr 27.02.04 21:59

die listboxen füllst du mit:

Delphi-Quelltext
1:
append, Add                    


Zum dateiauslesen:

Delphi-Quelltext
1:
eof, read                    


Vieelicht solltest du auch mal überlegen folgendes zu benutzen:listbox.savetofile listbox.loadfromfile
weiß ja nicht was du machen willst. ist aber auf jeeden fall für dich einfacher!

rokdd


Anonymous - Fr 27.02.04 22:00

[OT] Das ist ja schrecklich, kaum hat man was gepostet, sind schon wieder 2 neue Posts da... :roll: Ist ja ne richtige Inflation.


rokdd - Fr 27.02.04 22:01

übrigens gibt es im internet unter anderem auch deutsche websiten als hilfe, man sollte bloß google benutzen können...
Suche bei Google APPEND AND DELPHI AND FILE

rokdd


Delete - Fr 27.02.04 22:05

Smile hat folgendes geschrieben:
ps: meine Hilfe ist Englisch, da kommt net viel raus hehe! ;)

Das lasse ich nicht gelten. Es sollte mittlerweile bekannt sein, dass es zu D6 Personal eine Deutsche Hilfe gibt. Und die Code-beispiel sollten ihr übriges tun in der Hilfe. :roll:


Smile - Fr 27.02.04 22:05

rokdd hat folgendes geschrieben:

listbox.savetofile listbox.loadfromfilerokdd

das hört sich gut an ich will die Listbox ja speichern und dann wieder laden und erweitern und wieder speichern, so zu sagen

MEINE "tolle" HILFE sagt mir das savetofile Boolean ist
was solln das

listbox1.savetofile(f);

[Error] Unit1.pas(59): Undeclared identifier: 'savetofile'


rokdd - Fr 27.02.04 22:07

die gibt true zurück wenn erfolgreich:if (listbox.savetofile(path)=true) then speichern


Rokdd


Smile - Fr 27.02.04 22:07

Luckie hat folgendes geschrieben:
Smile hat folgendes geschrieben:
ps: meine Hilfe ist Englisch, da kommt net viel raus hehe! ;)

Das lasse ich nicht gelten. Es sollte mittlerweile bekannt sein, dass es zu D6 Personal eine Deutsche Hilfe gibt. Und die Code-beispiel sollten ihr übriges tun in der Hilfe. :roll:


(entfernt) Wenn du diesen Beitrag nix zutragen möchtest außer "Nimm die Hilfe du fauler Sack" dann lass es doch,
wieso gibt es denn so ein Forum?

Moderiert von user profile iconTino: Satz entfernt. Bitte ordentlich diskutieren!


Anonymous - Fr 27.02.04 22:08

Du willst doch nicht die ListBox, sondern die Einträge darin speichern. Die sind in TListBox.Items, also würde ich mal TListBox.Items.SaveToFile probieren ;)


Delete - Fr 27.02.04 22:08

Listbox kennt die Methode SaveTofile nicht, aber die Eigenschaft Items von TListbox.


Delete - Fr 27.02.04 22:10

Ein Forum ist dazu da Probleme beim programmierten zu diskutieren und nicht, um die Hilfe zu zitieren. Aber deine Probleme sind keine, wenn man unter den Stichworten mal in der Hilfe kuckt, die ich dir gegeben habe, und sich mal etwas damit auseinandersetzt.

Und damit klicke ich mich auf deinen Wunsch hin hier aus. Viel Spaß noch.


rokdd - Fr 27.02.04 22:11

bei mir steht zwar glaube ich nichts von boolean als rückgabewert!

sorrryy:

Delphi-Quelltext
1:
list.Items.SaveToFile();                    


rokdd


rokdd - Fr 27.02.04 22:13

@ smile: du solltest schon erst in die hilfe/internet schauen und dann posten....
Dadurch erreichst du auch ein gewisses hintergrundwissen und schreibst das nicht nur ab!

Rokdd


Smile - Fr 27.02.04 22:13

hmm

aber ich muss es schon noch richtig mit einauen oder?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
begin 
 AssignFile(f, 'save.ini');
 Append(f);
 try
  listbox1.Items.SaveToFile(f);
  Flush(f);
 finally
  CloseFile(f);
 end;


da kommt error zwischen text und string format
wie kann man denn noch zeilen weise auslesen und somit eine Listbox füllen?


rokdd - Fr 27.02.04 22:14

Schau in deine Hilfe und mal im Internet. Lies genau!

rokdd

Moderiert von user profile iconTino: Size-Tags entfernt. Hier wird nicht "geschriehen"!


Anonymous - Fr 27.02.04 22:18

Ach, irgendwie ist das ganze doch sinnlos.

@smile: lass das mit textfile am besten. Nimm einfach dein TListBox.Items und ruf davon "SaveToFile" auf und übergib einfach den Dateinamen. Das sind zwei ziemlich unterschiedliche Dinge, und zusammen kanns ja schlecht funktionieren :)


rokdd - Fr 27.02.04 22:23

so schwer sind coch die funtionen dass du damit nicht zurechtkommen würdest. aber na gut lassen wir das thema halt.
Ich verabschiede mich auch da ich dir ja genug hilfe gegeben habe und flan den rest tun wird(ämlich das was luckie und ich nict machen wollen, weiles dir nicht hilft)! viel spaß!

rokdd


Smile - Fr 27.02.04 22:23

ich danke euch recht herzlich
das Laden funktioniert auch

(entfernt)

Moderiert von user profile iconTino: Satz entfernt. Bitte in Zukunft andere Wörter benutzen!


mimi - Sa 28.02.04 20:33

wie währes mit ini dateien ? also mit TIniFile oder TStreams


Tino - Mo 01.03.04 09:42

Smile hat folgendes geschrieben:
noch eine Frage [...]

Bitte in Zukunft für jede neue Frage auch ein neues Topic in der richtigen Sparte erstellen. Danke!

Gruß
Tino


Smile - Mo 01.03.04 16:03

Tino hat folgendes geschrieben:
Smile hat folgendes geschrieben:
noch eine Frage [...]

Bitte in Zukunft für jede neue Frage auch ein neues Topic in der richtigen Sparte erstellen. Danke!

Gruß
Tino


sry aber ich dachte es hängt zusammen
ist ja speichern und laden

dann wird wieder gemeckert das ich vielleicht dauernd neue Themen eröffne!


mimi - So 07.03.04 15:32

wenn es eine frage ist die zu ersten frage passt, kannst du sie hier rein schreiben andren falls einen neuen Beitrag *G*