Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Meandor

Frischling

  • »Meandor« ist der Autor dieses Themas

Beiträge: 55

Wohnort: Oberhausen

Beruf: Student

  • Private Nachricht senden

11

12.04.2005, 18:22

2

Danke Till für die Sache mit den Streams aber das klappt schon bei mir ich mache jetzt folgendes ich lese die komplette Zeile ein und schneide mir dann mit .erase den String so zurecht das es passt.(Ich kenne ja die Stellen)

Mein neues Problem ist wie bekomme ich nun dieses Datum in einen vernüftigen UTC Zeitstempel?? hatte dir dazu auch eine mail hier bei spieleprogrammierer geschickt

da ich das mit dem strftime nicht so ganz verstanden habe wie man das macht wenn ich

16.04.04 07:09:33 als String ausgelesen habe also ich benötige jetzt irgendwie eine konvertierungsmöglichkeit

mit dem Ergebnis zB. : 11123112201 in UTC Zeitstempel.
wie geht das ???

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

12

12.04.2005, 19:03

Ach so, du willst deinen String eigentlich nur "umformen", das hat mit Zeit-Funktionen ja eigentlich nichts zu tun. "strftime" z.B. braucht ja einen tm-Zeiger und macht dann einen String nach Bedarf, du aber brauchst quasi den umgekehrten Weg, oder?

Ich weiß leider nicht, wie dein UTC-Zeitstempel genau aussieht, aber ginge es nicht, ihn "manuell" umzuformen? Kannst du mal posten, was am Ende, also NACH der Konvertierung rauskommen soll?
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Meandor

Frischling

  • »Meandor« ist der Autor dieses Themas

Beiträge: 55

Wohnort: Oberhausen

Beruf: Student

  • Private Nachricht senden

13

12.04.2005, 21:47

ergebnis

Das habe ich ja geschrieben es soll ein UTC Format herauskommen zum Beispiel 1110122334

diese Werte könnte ich dann in einer double Variablen einfacher speichern und es ist wesentlich leichter damit zuvergleichen welcher Wert kleiner wäre

umgekehrt habe ich ja dazu eine Funktion mir schon geschrieben
aus der eine UTC Format wieder in ein lesbarer String geschrieben wird


char *dtime(double dzeit)
/* Darstellung der Zeit, so wie auch ctime das macht. Nur, daß das Argument */
/* keine Integerzahl ist, sondern eine Floatzahl. */
/* -------------------------------------------------------------------------- */

{
static char buf[80]; /* Ausgabestring */
time_t tzeit; /* Zwischenvariable, localtime() braucht Zeiger ...*/
struct tm tmzeit; /* Zwischenvariable, Ergebnis von localtime() */

tzeit=(time_t)dzeit;
tmzeit=*localtime(&tzeit);

sprintf(buf,"%4i-%02i-%02i %02i:%02i:%02i:%03i",
tmzeit.tm_year+1900,
tmzeit.tm_mon+1,
tmzeit.tm_mday,
tmzeit.tm_hour,
tmzeit.tm_min,
tmzeit.tm_sec,
(int)(1000.0*(dzeit-tzeit)));
return(buf);
}

diese Funktion gibt mir ein Datum wieder heraus wenn ich zum Beispiel
dtime(1112778259.214); erzeugt mir dieses das entsprechende Datum!
(die Nachkommastellen stehen für die Millisekunden)

Ich benötige aber die Umkehrfunktion als Datum einlesen und 1112778259 heraus bekommen.
Und zwar aus einem String wenn es geht
Hast du da eine Idee oder irgendjemand anderes sich schon mal mit diesen tm struct herumgeschlagen??

Brauche echt Hilfe
Mit bestem Dank
Jens

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

14

12.04.2005, 22:41

OK, du willst also aus einem String eine Dezimalzahl machen, wie dein "dtime" als Paramter erwarten würde (oder etwa gleich eine tm-Struktur?)? Das dürfte doch nicht sooo schwer sein! Du musst eben dafür sorgen, alle Zeit-Strings (wie Datum oder Uhrzeit) zusammen in einen String zu "packen" (am Besten std::string und operator+= benutzen), aber in richtiger Reihenfolge (wie sie dann als "UTC-String" aussehen soll), dann die Doppelpunkte (Uhrzeit) und die normalen Punkte (Datum) löschen (mittels Iteratoren z.B.) und dann den gesamten String in eine Zahl konvertieren (mit atoi z.B. oder mit sscanf).
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Werbeanzeige