Hallo!
Ich wollte mal fragen, ob mir einer beim folgenden Problem helfen kann:
Ich erstelle eine Datei mit meinem Programm, wenn ich auf einen Button
klicke.
Nun wollte ich quasi mal das Fetaure machen, dass der name der Datei die
aktuelle Datum und Uhrzeit ist.
Hat jemand einen Tipp wie ih es machen könnte?
Ich danke schon mal,
Runkelfurunkel
>Hat jemand einen Tipp wie ih es machen könnte?
Ja: Datum und Uhrzeit mithilfe geeigneter Funktion auslesen, als String
zusammensetzen und als Dateiname verwenden.
eine Funktion in deiner Programmiersprache suchen die aktuelle
Datum/Zeit liefert. Dann den String mit Format Anweisung passend
gestalten. Und wenn das Programm auf Rechnern mit Betriebssystemen in
verschiedenen Sprachen läuft daran denken das dann die
Standardformattierungen ungültige Zeichen in den Namen bringen können,
also besser den Namen selber zusammenbauen.
Und Datumsangaben möglichst so zusammensetzen: JJJJMMTT, dann werden die
Dateien auch bei alphabetischer Sortierung in der richtigen Reihenfolge
angezeigt.
Also.
Ich arbeite mit VC++, und habe in meinem Programm folgendes stehen:
CTime time = CTime::GetCurrentTime();
CString str = time.Format("%d.%m.%Y_%H:%M:%S");
Das habe ich aus dem Internet. Muss ich jetzt noch eine header
einbinden, oder etwas anderes?
Das thema mit dem erstellen der Datei klappt mitlerweile auch:
FILE* fp;
fp = fopen("test.txt","w");
fprintf(fp, Ausgabefenster->Text); // Hier will ich den Inhalt einer
Richtextbox in die Datei schreiben lassen, klappt aber so noch nicht.
fclose(fp);
Jetzt will ich, dass das Programm die Datei nach dem aktuellen Datum
nennt, also glaube ich zu wissen, dass man dann an dieser Zeile hier:
fp = fopen("test.txt","w");
etwas verändern muss.
Danke,
Runkelfurunkel
Hi
Ich programmiere mit Delphi, nicht mit VB. Unter Delphi hat RichEdit
eine Eigenschaft: Lines, die den Text beinhaltet. Diese wiederum besitzt
eine Methode: SaveToFile. Damit lässt sich der Text von RichEdit mit
einer Zeile speichern:
RichEdit.Lines.SaveToFile(FileName);
Vielleicht geht das in VB ähnlich?
MfG Spess
Ich hatte das mit dem speichern der Datei schon hinbekommen, wie ich
oben schon geschrieben hatte.
Ich wollte jetzt eigentlich nur wissen, wie ich eine zuvor erstellte
textdatei nach dem aktuellen Datum benenne.
Runkelfurunkel
Oh, sorry! Ich habe außversehen das hier oben geschrieben, obwohl ich
den text ganz woanders hinschreiben wollte. :-/
Aber zu deinem Vorschlag, ich glaube, dass es in VC++ ganz anders
aussieht.
Aber trotzdem danke
Runkelfurunkel
Runkelfurunkel wrote:
> nennt, also glaube ich zu wissen, dass man dann an dieser Zeile hier:>> fp = fopen("test.txt","w");>> etwas verändern muss.
Hmm. Was könnte man wohl an dieser Zeile verändern, so dass
die Datei nicht mehr "test.txt" heist, sondern den Dateinamen
aus einer Variablen namens str holt?
Das ist wirklich eine 11-er Frage.
Hallo Bernhard Walle,
Danke für die Antwort, aber leider fuktioniert das nicht. Wenn er die
Datei erstellen soll, dann kommt eine Fehlermeldung von der Debug
library:
Debug Assertion failed!
Program: ...
File: strftime.c
Line: 629
Expression: ((timeptr->tm_mday >=1)&&(timeptr->tm_mday <=31))
Ich habe jetzt nicht im entferntesten einen Plan was das bedeutet.
kannst du mir bitte noch einmal helfen?
Danke, gruß
Runkelfurunkel
Junge, Junge, das Brett, das du vorm Kopf hast, wäre ein Vermögen wert,
wenn es wirklich aus Holz wäre...
Guck halt mal nach, was in my_tm steht, statt nur deine Fähigkeiten in
copy&paste zu perfektionieren...
He, uhu!
Du kanns ja prima sprüche reißen, aber wenn es um konkrete Anworten oder
Lösungen geht, ziehst du dich zurück oder redest um den heißen Brei
herum.
Wieso sagst du mir denn nicht einfach was in my_tm steht? Nichts, oder?
Außerdem, wenn du es noch nicht bemerkt haben solltest, dies hier ist
ein FORUM. Wenn du schon in einem Forum Antworten schreibst, dann bitte
auch welche mit denen man etwas anfangen kann.
Vielleicht bist du ein typ, der alles kann, ich bin es nicht. Wenn du
findest, dass meine Antwort dumm war, und nichts anderes weißt als dumme
Sprüche zu reißen, dann Antworte besser gar nicht.
Runkelfurunkel
> Expression: ((timeptr->tm_mday >=1)&&(timeptr->tm_mday <=31))>>> Ich habe jetzt nicht im entferntesten einen Plan was das bedeutet.> kannst du mir bitte noch einmal helfen?
Hmm.
Die tm Struktur hat etwas mit einem Datum bzw. Zeit
zu tun.
Ein assert testet eine Aussage auf Gültigkeit.
Die Aussage lautet, laut Debug Ausgabe:
timeptr->tm_mday >=1)&&(timeptr->tm_mday <=31
Was könnte das wohl sein?
Die beteiligte Variable ist mit tm_mday benannt. Da steckt das
englische 'day', also Tag drinnen. Und dieses ominöse day
Variable muss grösser/gleich 1 und kleiner/gleich 31 sein.
Was könnte wohl hier geprüft werden?
Und was wird man wohl in der tm Struktur, die ja von localtime
gefüllt werden sollte, mal abprüfen.
Ist wirklich schwierig :-)
Runkelfurunkel wrote:
>>> nennt, also glaube ich zu wissen, dass man dann an dieser Zeile hier:>>>>>> fp = fopen("test.txt","w");>>>>>> etwas verändern muss.>> Hmm. Was könnte man wohl an dieser Zeile verändern, so dass>> die Datei nicht mehr "test.txt" heist, sondern den Dateinamen>> aus einer Variablen namens str holt?>> Das ist wirklich eine 11-er Frage.> Ja, eine 11-er Frage, auf die ich gerne eine Antwort hätte.
Wenn du das nicht selber heraus kriegst, dann ist es besser
du lässt das Programmieren sein. Das ist nichts für dich.
Ist keine Schande, nicht jeder hat das Zeugs dazu. Dafür
kannst du halt andere Dinge besser.
CTime time = CTime::GetCurrentTime();
CString str = time.Format("%d.%m.%Y_%H:%M:%S");
FILE* fp;
fp = fopen( str, "w" );
Ist doch eigentlich naheliegend, oder nicht?
In str steht ein Text und diesr Text soll als Dateiname
dienen. Das erste Argument, das fopen erwartet ist der
Dateiname. Ergo ....
Falls du doch noch weiter programmieren lernen willst, empfehle
ich dir dringenst den Ankauf eines Buches. Vergiss das Internet.
Alle Seiten zusammen, alle Online-Tutorien können ein Buch
nicht ersetzen. Ohne eine systematische Einführung, die ausführlich
Schritt für Schritt vom Einfachen zum Schwierigen vorgeht wird
das nichts.
Runkelfurunkel wrote:
> Hallo Bernhard Walle,>> Danke für die Antwort, aber leider fuktioniert das nicht. Wenn er die> Datei erstellen soll, dann kommt eine Fehlermeldung von der Debug> library:>> Debug Assertion failed!>> Program: ...> File: strftime.c> Line: 629>> Expression: ((timeptr->tm_mday >=1)&&(timeptr->tm_mday <=31))
Vielleicht ist das localtime_r() kaputt. Probier mal localtime(). Ist
halt nicht threadsicher.