Hallo zusammen, ich sitze hier gerade vor etwas Code von jemandem, der daran nicht mehr arbeiten wird. Leider steht er mir auch nicht mehr für Fragen zur Verfügung und jetzt muss ich mich so durchkämpfen. Aktuell scheitere ich allerdings an dem Funktionsaufruf CFile::Seek(-1,2); Ich habe eine Dokumentation gefunden, welche aller höchst wahrscheinlich dazu gehört: http://msdn.microsoft.com/de-de/library/8c5ccz0x.aspx So wie ich das Verstehe verschiebt die Funktion den Cursor um 2 Bytes richtung Anfang. Nun mein Problem ist jetzt aber, dass die Datei geöffnet wird [if ( !CFile::Open(...) ) ...], ein Byte gelesen wird [CFile::Read(&c,1)], dann dieses Byte geprüft und ggf. im Anschluss das CFile::Seek(-1,2); ausgeführt wird. Wenn ich da jetzt richtig gerechnet habe, dann müsste der Cursor also auf -1 also noch ein Byte vor der Datei stehen, was natürlich Käse ist. Anscheinend hat diese Funktion aber nie Probleme gemacht, also muss ja irgendwas falsch sein an meiner Rechnung. Stimmt ihr mir da zu oder kann mir jemand erklären wie dieses Seek wirklich funktioniert? Vielen Dank Leo
> So wie ich das Verstehe verschiebt die Funktion den Cursor um 2 Bytes > richtung Anfang. Ja. Aber beachte auch den zweiten Parameter (und haut dem Autor verbal eine rein, dass er nicht die dafür vorgesehenen Konstanten sondern eine Zahl genommen hat).
Oh man, die Dokumantation sollte man schon lesen können... die 2 im seek(-1,2) ist vermutlich CFile::current. Ich plans grad nicht das richtig aufzulösen, aber der Curser wird wohl von der Aktuellen Position aus um 1 nach links verschoben, was wieder der Anfang ist... Fazit: Erst die Doku auf Englisch umschalten, dann lesen. Auf Deutsch steht da wirklich nur schrott. Sorry für den Fehlalarm.
Dateioffset nach öffnen der Datei: 0 nach Read(xxx,1): 1 nach Seek(-1,CFile::end): 0
bluppdidupp schrieb: > nach Seek(-1,CFile::end): 0 Allerdings könnte man das auch einfacher, sicherer und verständlicher erreichen. Aber ein C-Programmierer schreibt natürlich möglichst unverständlichen Code, damit ihn der Chef nicht lesen kann. War eben schon immer eine Write-Only-Programmiersprache. Georg
Nur schade, daß alle, die sich Georg nennen, immer so pauschalisieren :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.