Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Seal33

Frischling

  • »Seal33« ist der Autor dieses Themas

Beiträge: 18

Beruf: Student

  • Private Nachricht senden

1

16.07.2014, 14:36

Kapitel 2.2 Aufgabe 2 wie Dateien einlesen / abspeichern?

Hallo!

Ich habe bis jetzt jede Übungsaufgabe erfolgreich gelöst, aber Aufgabe 2 in Kapitel 2.2 (Seite 98) bereitet mir Kopfschmerzen. :dash:
Ich verstehe einfach nicht wie ich mit der TriBase Engine Dateien einlesen / schreiben soll, da ich im Buch nichts dazu finden kann und so einfach nicht weiter komme. Theoretisch lässt sich das Einlesen ja noch mit virtuellen Dateien realiseren, aber das Schreiben? Im Forum habe ich schon Gesucht konnte aber nichts finden was mir direkt hilft... Wenn mir jemand saen Kann wie man das Lösen soll wär es nett wenn er/sie mir noch eine kurze erklärung dazu geben könnte oder einen Link o.ä. Und bitte keine Antworten wie "wenn du das nicht Weist solltest du gar nicht Programmieren/Das Buch Lesen/erstmal C++ Lernen. Das hilft mir wirklich nicht weiter ?( ^^.

Vielen Dank im Voraus,

Seal33

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

2

16.07.2014, 14:58

Ich glaube nicht das die Engine die Datei einlesen soll. Die Aufgabe lautet: Schreibe ein Programm, dass Daten aus einer Textdatei einliest.
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Seal33

Frischling

  • »Seal33« ist der Autor dieses Themas

Beiträge: 18

Beruf: Student

  • Private Nachricht senden

3

16.07.2014, 15:13

Ich glaube nicht das die Engine die Datei einlesen soll. Die Aufgabe lautet: Schreibe ein Programm, dass Daten aus einer Textdatei einliest.
Und wie würdest du es stattdessen machen?

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

4

16.07.2014, 15:24

Ich hab das Kapitel nur mal kurz überflogen. Schau Dir mal den Quellcode von tbfile.cpp an. Ich glaub das könnte helfen. Sollte ich mich da verguckt haben, helfe ich gerne weiter.
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Seal33

Frischling

  • »Seal33« ist der Autor dieses Themas

Beiträge: 18

Beruf: Student

  • Private Nachricht senden

5

16.07.2014, 15:50

Ok, also Danke erstmal das hat mir schon ein gutes Stück weitergehlofen :).
Nur verstehe ich nicht ganz was ich bei tbReadFile und tbWriteFile genau als 2. Parameter übergeben muss ^^. Wie gesagt ich bin halt noch gewissermaßen anfänger mit dem Buch :D . wie kann ich zB. einen Vektor & eine Matrix einlesen?

Danke!

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

6

16.07.2014, 16:23

Du erstellst eine Textdatei mit Notepad. Schreibst da die Vektor- o. Matrixdaten rein.

Es geht nicht um die Tribase es geht um die fopen bzw. fread Funktion. Da stand nur passender Code drin. ;)

Dann kommt es auf diesen Part an: (Allerdings nicht binär sondern rt)

// Datei binär zum Lesen öffnen
pFile = fopen(pcFilename, "rb");
if(!pFile)
{
tbMemFree(pData);
TB_ERROR_FILE(pcFilename, TB_ERROR);
}

// Daten lesen
if(fread(pData, FileStats.st_size, 1, pFile) != 1)
{
tbMemFree(pData);
fclose(pFile);
TB_ERROR_FILE(pcFilename, TB_ERROR);
}

// Datei schließen und Pointer zurückliefern
fclose(pFile);
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ByteJunkie« (16.07.2014, 19:06)


Seal33

Frischling

  • »Seal33« ist der Autor dieses Themas

Beiträge: 18

Beruf: Student

  • Private Nachricht senden

7

16.07.2014, 16:38

Hmmm. 2 Dinge versteh ich aber immer noch nicht (sorry ^^).
1. Wie muss ich denn die Sachen in die Eingabe.txt schreiben? Also was wird als Vektor erkannt wenn es da drin steht? (muss ich zB nur Koordinaten wie (0,0,0) schreiben oder etwas wie tbVector3 v (0, 0 ,0) ?)

2. Wie genau kann ich denn jetzt die eingelesenen Daten verwenden? Damit meine ich zB sowas wie (was selbstverständlich nicht funktionieren würde)

tbReadRawFile("Eingabe.txt", Input); vVector = Input;

Danke :D

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

8

16.07.2014, 16:58

Ich schätze, da ist dem Künstler freie Wahl geblieben.

Ich versteh die Aufgabe so: TextDaten einlesen, Daten transformieren, Transformierte Daten in Textdatei speichern.
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Seal33

Frischling

  • »Seal33« ist der Autor dieses Themas

Beiträge: 18

Beruf: Student

  • Private Nachricht senden

9

16.07.2014, 17:30

versteh ich nicht. :P

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

10

16.07.2014, 17:50

Eine Matrix ist im Grunde eine Tabelle.
Also schreibe ich in die Texdatei:

Matrix1 (1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0)
Matrix2 (0,9,8,7,6,5,4,3,2,1,0,9,8,7,6,5,4,3,2,1)

Wenn ich die Datei auslese interessiert mich:

Matrix1 und der Inhalt
Matrix2 und deren Inhalt.

Bei Vectoren und deren Inhalte ist es ähnlich.


Wo ist das Problem :?:
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ByteJunkie« (16.07.2014, 18:51)


Werbeanzeige