Seek & Read
-
Hallo,
ich habe ein kleines Problem: Ich lese die Datei bis '0x0A' kommt. Danach möchte ich das darauffolgende Zeichen lesen. Doch mit dem Lesen von dem nächsten Zeichen klappt's nicht.. (Das Programm liest noch immer '0x0A')
// <------------ !?Vielleicht habt ihr eine Idee was an der Stelle nicht stimmt..
LONG lActual = 0; LONG lPos = 0; int nLaenge = file.GetLength(); file.Seek(0, CFile::begin); for(int i = 0; i < nLaenge; i++) { lPos = file.GetPosition(); file.Read(cBuffer,1); if(cBuffer[0] == 10) // LF, 0x0A { lActual = file.Seek( lPos++, CFile::begin ); // +1 vorwärts file.Read(cBuffer,1); // <------ !? if(cBuffer[0] == 13) // CR, 0x0D { } lActual = file.Seek( lPos--, CFile::begin ); // -1 rückwärts } //strDateiInhalt += cBuffer; }Merci
-
Hallo EdiRitter,
Anmerkung im QuellCode. -BernhardC/C++ Code:
LONG lActual = 0;
LONG lPos = 0;int nLaenge = file.GetLength();
file.Seek(0, CFile::begin);for(int i = 0; i < nLaenge; i++)
{
lPos = file.GetPosition();
file.Read(cBuffer,1);if(cBuffer[0] == 10) // LF, 0x0A
{
lActual = file.Seek( lPos++, CFile::begin ); // +1 vorwärtsfile.Read(cBuffer,1); // <------ !?
if(cBuffer[0] == 13) // CR, 0x0D
{
}lActual = file.Seek( lPos--, CFile::begin ); // -1 rückwärts
' An dieser Stelle springst Du wieder auf die vorherige
Position und somit auf den alten Wert. Lasse diese Zeile
aus!}
//strDateiInhalt += cBuffer;
}
-
Hallo,
du brauchst doch kein Seek, bei einem Read wird der interne Lese-Zeiger sowieso nach vorne bewegt:
LONG lActual = 0; LONG lPos = 0; int nLaenge = file.GetLength(); file.Seek(0, CFile::begin); for(int i = 0; i < nLaenge; i++) { file.Read(cBuffer,1); if(cBuffer[0] == 10) // LF, 0x0A { file.Read(cBuffer,1); // <------ !? if(cBuffer[0] == 13) // CR, 0x0D { } } //strDateiInhalt += cBuffer; }es sei denn, ich habe den Sinn des Codes noch nicht verstanden...
MfG
-
Jo, danke!