JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2d0374ef97fd9633d1d638f607c2d4aaMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

int in struct laden

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mäscht
JLI'ler



Anmeldedatum: 22.05.2003
Beiträge: 150
Wohnort: Bad Hofgastein\Österreich
Medaillen: Keine

BeitragVerfasst am: 02.07.2003, 10:35    Titel: int in struct laden Antworten mit Zitat

Ich möchte mit hilfe der fopen() funktion zahlen in eine struct laden, aber irgendwas geht da nicht! Ich kann zwar einen text laden aber de brauche ich nicht!
mein code sieht ungefähr so aus: (fehler sind natürlich dabei, weil ich ihn nur aus dem gedächnis schreibe)
Code:

struct SP_VAL
{
int x,y,x1,y1;
};

FILE *stream;
fopen("test.txt",sizeof(char),stream);
fread(sp_val,sizeof(char),stream);
fclose(stream);



geht das so oder irgendwie anders??
_________________
Motz´z mi net o, i bin ofänga!! AEIOU für immer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 02.07.2003, 10:47    Titel: Antworten mit Zitat

ich würde das ganze zuerst mal in eine binäre datei schreiben da man die daten einfach als einen typ speichern kann.

Code:

SP_VAL StrukturName;

FILE *stream;
stream=fopen("test.bin","rb+");

fread(&StrukturName.x,sizeof(int),1,stream);
fread(&StrukturName.y,sizeof(int),1,stream);
fread(&StrukturName.x1,sizeof(int),1,stream);
fread(&StrukturNamey1,sizeof(int),1,stream);

fclose(stream);

_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 02.07.2003, 11:58    Titel: Antworten mit Zitat

Code:

fread(&StrukturName ,sizeof(SP_VAL),1,stream);

_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mäscht
JLI'ler



Anmeldedatum: 22.05.2003
Beiträge: 150
Wohnort: Bad Hofgastein\Österreich
Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 06:23    Titel: Antworten mit Zitat

kann ich dann einfach im editor war schreiben und dann als zB "Test.bin" speichern oder muss ich es vorher mit fwrite() speichern?
_________________
Motz´z mi net o, i bin ofänga!! AEIOU für immer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 08:01    Titel: Antworten mit Zitat

Wenn du versuchst, eine Datei zum Lesen zu öffnen, die es nicht gibt, liefert fopen() NULL zurück. Wenn du sie zum schreiben öffnest wird die Datei angelegt.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 09:58    Titel: Antworten mit Zitat

Nein du kannst es nicht einfach im editor speichern, da es die datentypen direkt speichert.
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 11:07    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
Code:

fread(&StrukturName ,sizeof(SP_VAL),1,stream);


Du willst direkt eine Struktur laden, schau mal auf den Namen des Themas!
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 12:12    Titel: Antworten mit Zitat

Wenn SP_VAL so definiert ist:

Code:

struct SP_VAL
{
int x,y,x1,y1;
};


, ist mein Code von der Funktion her äquivalent mit deinem.
Das Thema lautet "ints in eine struct" laden. Das tut mein Code doch! In der Struktur sind 4 Integers definiert, also kann er garnichts anderes laden.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 12:15    Titel: Antworten mit Zitat

Code:

fopen("test.txt",sizeof(char),stream);


Und was soll das für ein Konstrukt sein? In der MSDN steht das so drin:

Code:

stream = fopen("test.txt", [ZUGRIFFSMODUS]);

_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 13:20    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
Und was soll das für ein Konstrukt sein?


schau mal nach oben:

Mäscht hat Folgendes geschrieben:
mein code sieht ungefähr so aus: (fehler sind natürlich dabei, weil ich ihn nur aus dem gedächnis schreibe)

_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 03.07.2003, 13:23    Titel: Antworten mit Zitat

Hey, komm mal vom Teppich. Ich habe nur auf einen Fehler hingewiesen. Du musst nicht jeden meiner Posts kommentieren. Wenn Mäscht ein Problem damit hat, kann er es mir selber sagen. ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mäscht
JLI'ler



Anmeldedatum: 22.05.2003
Beiträge: 150
Wohnort: Bad Hofgastein\Österreich
Medaillen: Keine

BeitragVerfasst am: 20.07.2003, 19:31    Titel: Antworten mit Zitat

He! Streitet da nicht herum! Ja ich habe einen Fehler gemacht, weil ich einiges verwechselt habe! Ich habe nämlich von irgendeinem PC geschrieben und habe mich nicht mehr so genau an das alles erinnern können! Deshalb der fehler bei fopen()!! Wink
_________________
Motz´z mi net o, i bin ofänga!! AEIOU für immer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gl_echse
JLI'ler



Anmeldedatum: 01.01.2003
Beiträge: 105

Medaillen: Keine

BeitragVerfasst am: 21.07.2003, 12:45    Titel: Antworten mit Zitat

Code:

int* read()
{
 char* data = getDataFormFile(); //die schreibarbeit erspare ich mir jetzt

 int retvalue[4];
 for(int i=0;i<4;i++)
  {
   union
   {
    char c[4];
    int i;
   } u;
   u.c[0] = data[i];u.c[1] = data[i+1];u.c[2] = data[i+2];u.c[3] = data[i+3];
   retvalue[i] = u.i;
 }
return i;
}

wäre byteweise.

oder dann als ganzzahlen:
Code:

int* read()
{
 char* data[4] = getDataFormFile(); //die schreibarbeit erspare ich mir jetzt

 int retvalue[4] = {atoi(data[0]), atoi(data[1]), atoi(data[2]), atoi(data[3])};
return retvalue;
}


hoffe ich konnte hier ma klarheit schaffen.

wobei er dass dann so in den struct laden würde:

Code:

union{
blastruct s;
int i[4];
}data;
data.i = read();
blastruct bla = data.s;


edit: ich vergess einfach zu oft die codetags Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum