Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Einstellungen aus Dateien lesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
28.11.2003, 14:16 Uhr
~Gast
Gast


Oben waren es vier, aber das waren je eine Farbe. Vergiss das einfach.

wenn ich nur einen char einlese, dann hab ich das Problem mit weiß, weiß ist ein zweistelliger wert der Farbe. Deshalb wird es wie folgt aussehen:

Textdatei:

Zeile 1 07
Zeile 2 06
Zeile 3 15
Zeile 4 02
Zeile 5 08
Zeile 6 13
....

Jede Zeile soll nun einem Array der Variablen Farbe zugeteil werden
d.h.
Farbe [1] = 07
Farbe [2] = 06
Farbe [3] = 15
Farbe [4] = 02
Farbe [5] = 08
...

Danke für die Mühe die ihr euch macht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
28.11.2003, 14:25 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


mmh
also wenn ich dich richtig verstanden habe...
die vier werte ergeben eine farbe und in jeder zeile stehen damit 4 weitere werte die dann insgesammt wieder eine farbe ergeben.
errechnet sich deine farbe jetzt aus den 4 werten oder musst die die vier einzeln eingelesenen werte noch speichern?

zu deinem array. Problem dabei ist, das man eine feste grösse von speicher anfordern muss. Weisst du schon vor dem auslesen der datei, wieviele zeilen du einlesen willst?

wenn nicht gibt es zwei möglichkeiten. durch ständiges realloc den speicher deines arrays vergrössern. Dürfte arschlahm sein oder eine liste nehmen.
noch einfacher wäre es wenn du c++ verwenden würdest, da man dann einfach std::vector aus der stl verwenden könnte (das ist quasi ein dynamsiches array das seine grösse beliebig verändern kann)

ach so noch ne möglichkeit wäre es vorher auszuzählen wieviele zeilen deine datei hat und dann entsprechend speicher anzuforden. halte ich für sinnvoller als ein ständiges realloc

speicher anfordern kannst du mit malloc

C++:
int arraygroesse=100; //oder wie gross auch immer dein array sein muss
int *farben = (int*)malloc(arraygroesse*sizeof(int));
//mit dem array arbeiten
free(farben) //am ende das freigeben nicht vergessen


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
28.11.2003, 14:35 Uhr
~Gast
Gast


Also das Array wird sich begrenzen lassen, da wenn ich fertig bin ich weiß wieviel zeilen drin sind, sind ja nur die farbeinstellungen die werden sich nicht vergrößern nur geändert.

jede Zeile ist der wert einer farbe. d.h. in Zeile 1 der Textdatei steht 02, dann speicher ich die 02 in Farbe[1], dann wirds im Programm so aussehen
textcolor (Farbe[1])

c++ kann ich leider nicht verwenden, da ich ein projekt mache, dass eigentlich nur c sein sollte, nur wenn es keine lösung gibt, dann nehm ich c++

Jetzt verstanden? Ich hoffe mich diesmal verständlich ausgedrück zu haben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
28.11.2003, 14:45 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na wenn du von vornherein weisst wieviele farben du einlesen willst ist super einfach weill du dann z.b. nur

C++:
int farben[100]; //allokiert dir ein array von 0...99


verwenden musst
einlesen kannst du dann wie virtual dir das schon gezeigt hat direkt mit fscanf
das sollte eigentlich direkt so funzen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
28.11.2003, 15:28 Uhr
~Gast
Gast


Danke für alles Mühen!!!

Ich glaube wir haben an einander vorbeigeredet. *g*

ich habe es jetzt soweit


Code:
fscanf(datei, "%d,%d,%d,%d,%d,%d", &col_funktion[1], &col_funktion[2], &col_funktion[3], &col_funktion[4], &col_funktion[5], &col_funktion[6]);


kann ich das durch eine schleife vereinfachen, ich komm nicht dahinter, wegen der Kommatrennung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
28.11.2003, 15:35 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na wenn alle 6 werte ne neue zeile kommt sollte das so eigentlich funzen

C++:
for(int i=0;!feof(datei);i+=6)
fscanf(datei, "%d,%d,%d,%d,%d,%d", &col_funktion[i], &col_funktion[i+1], &col_funktion[i+2], &col_funktion[i+3], &col_funktion[i+4], &col_funktion[i+5]);



wenn er das mit dem zeilenende nicht peilt musst du einfach noch ein \n unter linux bzw ein \r\n unter windows an den formatstring von fscanf anhängen

ach so noch ne anmerkung in c beginnen arrays beim index 0. Das heisst wenn du speicher für 100 werte allokierst läuft dein array von 0 bis 99
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 28.11.2003 um 15:36 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
28.11.2003, 15:40 Uhr
~Gast
Gast


Danke nochmal

Topic -close-
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: