Letzten X Zeilen aus einem Stream lesen?
-
Hi zusammen: ich hab wieder mal ´ne Frage:
Wie kann ich die letzten X Zeilen aus einem Stream Lesen?
Ich lade nämlich eine Datei, in der Werte Gespeichert sind/werden, die dann beim nächsten Start wieder gelesen werden und entsprechend behandelt werden.Ich mach das aus diesem Grund nicht mit Registry:
Wenn man die Datei auf einem anderen PC aufspielt, muss man alles neu aufspielen.Ich habs Schon mit TMemoryStream::Read versucht, aber ich weiss nicht was ich als ersten Wert eingeben muss, ich ahbs mit einem BYTE-Buffer versucht, ging aber nicht. Könnt ihr mir einen Tipp geben?
Danke,
J0
-
Speicherst du denn auch in deine Datei?
Du kannst meines Wissens nach die Datei nur mit MemoryStream lesen, wenn du sie temporär speicherst, dort ausliest, und dann wieder löscht..Hier ein kleines Beispiel aus meinem Programm UPXSchützer:
TMemoryStream *Mem =new TMemoryStream(); Mem->LoadFromFile(deinecopierte Datei); char *UPX; UPX = IntToStr(Mem->Seek(760,soFromBeginning)).c_str(); Mem->ReadBuffer(UPX,3); if (String(UPX) != "UPX") { Application->MessageBox("Entweder ist die Datei schon geschützt, oder sie ist noch nicht mit UPX gepackt.","Fehler",0+16); return; } delete UPX;
-
an der 760 stelle wird geprüft und ausgelesen, ob dort UPX steht.
-
Vielen Dank!!! Funzt Super!!! Danke!!
J0
-
Für Datei-Streams ist doch eigentlich TFileStream da.
-
ja, aber mit dem komm cih überhaupt net klar und mit dem MemoryStream hatte ich schonmal was gemacht, deshalb ist diese Löösung für mich verständlicher.
J0