Suchergebnisse
Suchergebnisse 1-12 von insgesamt 12.
Tja, ich denke mal, an dieser Stelle wird das dynamische Array alloziiert: C-/C++-Quelltext 1 2 if( pFile->Read( set, pBuffer ) == TB_OK ) //read set-many Bytes BufferGroesse = set; Die Read-Funktion liest so viele Zeichen, wie set angibt, ein und speichert sie ab der Adresse, die pBuffer angibt. Also wenn Du 5 Zeichen liest, dann wird ab sBuffer[0] stets das zu lesende Zeichen zugewiesen.. also sBuffer[0], sBuffer[1] usw. BlackViper
hm?? ich bin wieder ausgeloggt worden?
Richtig, David. Ich zeige aber meinen Code nie direkt zu Anfang, nur um dann festzustellen, daß ich einen Fehler auch selbst hätte feststellen können, da würde ich mir den Lerneffekt verbauen. Code posten mach ich erst, wenn ich wirklich nicht mehr drumherum komme und ich wirklich konkrete Hilfestellung bräuchte. Gut, aus Fehlern lernt man/frau, aber wäre es, wenn ein Newbie mal fragt, nicht verkehrt, ihm zu ein Tip zu geben wie .. "Schau Dir mal die und die Funktion an".. oder einen Ratschlag m...
Scheint wohl, daß keiner dieser Profis hier auch nur einen kleinen Ansatz zeigt. Für uns Anfänger ist das echt frustrierend, da will man das Buch durcharbeiten, aber kommt nicht voran, weil man im Forum immer andere Empfehlungen für Funktionen bekommt, anstatt mal die Funktionen anzugeben, die schon in David's Tribase gegeben sind. Zur Zeit frickel ich am Schreiben und Einlesen von ner Menge von 5 Random-Vektoren in einer Datei herum. Das Schreiben klappt, es gibt in meiner txt-Datei 5 lustige A...
Obiger Code funktioniert prima und die Log.html gibt aus Zitat Die Datei wurde erfolgreich eingelesen. Groesse: 23 Byte Der Cursor steht auf Position 0 Buffergröße: 5 Feld 0: c Feld 1: d Feld 2: e Feld 3: f Feld 4: g Die Datei "copy.txt" wurde erfolgreich geschrieben. Wenn Du die Größe des sBuffer mit sizeof mißt, bekommst Du aber immer den Wert 1! C-/C++-Quelltext 1 sizeof(sBuffer) funzt aber net für dynamischen Arrays, sondern nur für statische! Warum das so ist, vermute ich, liegt daran, daß ...
C-/C++-Quelltext 1 2 if( pFile->Read( 2, pBuffer ) == TB_OK ) //2Bytes einlesen BufferGroesse = 2; //Nur wenn der Lesevorgang erfolgreich war die Puffergröße ändern Ja, das war der entscheidende Clue. Anstatt mit strlen qualvoll eine falsche BufferGrößen zu messen, umgehen wir das Problem mit einer einfachen Zuweisung der Buffergröße, wenn das Einlesen gefunzt hat (was es ja eigentlich schon tat) Tja, so sind die Log-Ausgaben jetzt auch für 1-3 chars korrekt.. Hier nochemal für's Protokoll die ...
Ja, das ist schon klar.. immerhin ist das ganz im Sinne des dynamischen Arrays. Damit ist aber immer noch nicht geklärt, warum beim Messen des sBuffers mittels strlen stets korrekte ArrayLängen (hier als Buffergröße ausgegeben) für mindestens 4 gelesene Characters erfolgen, nicht aber für weniger als 4. In der Tribase-Funktion tbVFile::Read(int iNumBytes, void * pOut) gibt es die folgende Zeile Quellcode 1 memcpy(pOut, (BYTE*)(m_pBuffer) + m_iCursor, iNumBytes); Könnte die für dieses magische Mi...
Tja, nun hab ich vor pFile->Read noch ZeroMemory(sBuffer,0) gesetzt. Es ändert sich nichts. pBuffer ist ja schon anfänglich auf Null gesetzt und bekommt die Adresse von sBuffer, der ein leeres String ist. Ehrlich gesagt, verstehe ich nicht ganz, was das Setzen von sBuffer auf Null bezwecken soll..
Haj Nox, int BufferGroesse = 0; hab ich hinzugefügt. Aber letztlich bewirkt es keine Änderung. Der Buffer behält für 2 gelesene Zeichen den Wert 4. Gruß BlackViper
Hallo Leuts, ich sitz nun schon etwas länger an einem Problem, das mich ziemlich wurmt... Quellcode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 bool status=0; int Cursor_pos = 0; char sBuffer[] = ""; void* pBuffer = NULL; pBuffer = &sBuffer; // TriBase-Engine initialisieren tbInit(); tbVFile* pFile=new tbVFile; do { if(pFile->Init("test.txt")) { tbWriteToLog("Fehler beim Lesen der Datei!"); } else { int File_size = pFile->GetSize();...
Hi, tja, ich bekomme auch die 52 Fehler. Ansonsten kann ich alle Beispiel-Workspaces kompilieren und auch mit eigenem Code unter Einbindung der Tribase-Engine klappts reibungslos. Wenn ich aber mal gern in der Tribase-Engine herumschnüffeln möchte, um Funktionen kennenzulernen und dazu nicht immer ins Buch kucken zu müssen, wäre es halt praktisch, wenn ich zu einer gegebenen Funktion auch "Gehe zur Definition" benutzen könnte. Unglücklicherweise geht das nur, wenn man die Tribase-Engine einmal k...
Hallo Leute, Ich habe Listing 5.8 als Basis genommen und versucht, jeweils einen Zeiger der Struktur als Funktionsparameter für die Funktionen zu übergeben. Kuckt es Euch durch oder besser noch, kompilierts einmal. Ich sitze selbst schon seit einigen Abenden daran und bastel ständig an der Struktur herum. Ich fürchte, dass das Array Ärger bereitet.. Kann das Jemand bestätigen? C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3...