Du bist nicht angemeldet.

Suchergebnisse

Suchergebnisse 1-12 von insgesamt 12.

Werbeanzeige

10.08.2005, 15:29

Forenbeitrag von: »BlackViper«

Dyn. Array

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

10.08.2005, 13:11

Forenbeitrag von: »BlackViper«

Wieviel und was .. ^^

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...

10.08.2005, 12:53

Forenbeitrag von: »BlackViper«

Tja, magere Hilfe

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...

06.08.2005, 18:14

Forenbeitrag von: »BlackViper«

PufferGröße

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ß ...

06.08.2005, 17:22

Forenbeitrag von: »BlackViper«

Hehe

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 ...

06.08.2005, 14:54

Forenbeitrag von: »BlackViper«

Dynamisches Array

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...

06.08.2005, 12:56

Forenbeitrag von: »BlackViper«

Immer noch nichts...

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..

06.08.2005, 12:25

Forenbeitrag von: »BlackViper«

Keine Aenderung

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

06.08.2005, 03:05

Forenbeitrag von: »BlackViper«

Übungsaufgabe 2 von Unterkapitel 2.2.8

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();...

23.05.2005, 01:48

Forenbeitrag von: »BlackViper«

Vorteilhaft: Tribase kompilieren für Suchfunktion

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...

07.04.2005, 22:55

Forenbeitrag von: »BlackViper«

Listing 6.6: Modifizierter Code funzt nicht

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...

Werbeanzeige