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 ]
000
28.11.2003, 13:31 Uhr
~Gast
Gast


Ich hab meine Farbeinstellungen in einer textdatei gespeichert, also die zahlen.
Diese les ich ein/aus (siehe unten). Mein Problem oder Wunsch ist dieser. Ich lese im Moment einzelne Zeichen ein (Auszug aus der Textdatei: 7620).
Die 7 ist die bg_color, die 6 bg_color_aktiv etc.
ich will jetzt meine Textdatei wie folgt anlegen
7,6,2,0
jetzt soll er den ersten array bis zum ersten komma lesen, den zweiten bis zum zweiten komma und und und.
Gedanke ist der. Wenn ich eine Farbe wähle die einen zweistelligen wert hat kann ich das wie ichs im moment hab nicht weiterführen.
es muss die möglichkeit gegeben sein, dass ich auch zweistellige werte in einem array habe.
bsp. ich will weiß schreiben (wert 15), dann muss in der textdatei stehen:
7,6,15,0

Ich hoffe ich habe mich verständlich ausgedrück. Bitte um Hilfe. DANKE

Anhang:

do
{
i += 1;
col_funktion [i] = fgetc(datei);
}
while (i <= 10);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.11.2003, 13:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also ich würde dir empfehlen die zahlen durch nen tabulator zu trennen und dann mittels fscanf einfach direkt einlesen.

wenn du unbedingt jedes einzelne zeichen mit fgetc einlesen willst, kannst du vorher erst so lange in ein char buffer einlesen bis das nächste komma kommt. dann terminierst du den charbuffer mit ner 0 und rufst atoi auf.

ohne das jetzt zu testen

C++:

char buffer[100];
for(int i=0;i<100 && !feof(datei) && (buffer[i]=fgetc(datei))!=',' ;++i);
buffer[i+1]=0;
int zahl=atoi(buffer); //oder wem auch immer du die zahl übergeben willst


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 28.11.2003 um 13:41 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.11.2003, 13:41 Uhr
virtual
Sexiest Bit alive
(Operator)


Wenn pro Zeile immer die gleiche Anzahl von Werte steht, dann genügt ein einfaches fscanf:

C++:
int bg_color, bg_color_ativ, bg_color_foo, bg_color_bar;
...
if (4 != fscanf(datei, "%d,%d,%d,%d", &bg_color, &bg_color_activ, &bg_color_foo, &bg_color_bar))
{
    /* Fehler */
}else
{
   /* Alles okay, in bg_* stehen die werte jetzt drin
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.11.2003, 13:42 Uhr
~Gast
Gast


kannst du mir ein bsp. für die fscanf variante aufschreiben, wenn das geschickter ist und so kommt es mir vor. Thx a lot :o)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.11.2003, 13:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wie das mit fscanf geht hat dir virtual ja schon geschrieben. Kannst natürlich auch kommas als trennzeichen nehmen aber ich finde tabs oder leerzeichen übersichtlicher weil excel z.b. kommas (statt punkte) für kommazahlen verwendet
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.11.2003, 13:46 Uhr
~Gast
Gast


Ich will die Zeichen alle in ein Array reinladen und von dort aus vergeb ich dann immer wie ich es brauch die einzelnen Array den richtigen Variablen, ich hab da verzweigungen die das nur so zulassen.
nebenbei, kann mir jemand sagen wie ich dann einzelne (arrays) aus der textdatei ändern kann. Im Moment noch manuel, dem Problem hab ich mich noch nicht gewidmet, aber wenn jemand in dem zusammenhang das weiß ?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.11.2003, 13:50 Uhr
virtual
Sexiest Bit alive
(Operator)


Nebenbei: was excel verwendet hängt vermutlich von der Spracheinstellung ab, wie es ein vernünftig lokalisiertes C Programm auch tun würde:

C++:
#include <stdlib.h>
#include <locale.h>

int main()
{
    setlocale(LC_NUMERIC, "de_DE");
    printf("%f\n", 3.14);
}


Gibt unter Linux

Code:
3[b],[/b]140000


aus. Beachte: Languagestring "de_DE" nicht standardisiert (hier Linux), unter Nicht-Betriebsystemen wie mag das was anderes sein.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.11.2003, 13:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich weiss nicht ob ich dich richtig verstanden hab
willst du mit 4 arrays arbeiten die alle die gleich dimension haben
oder willst du mit einem array arbeiten das aus structs besteht, wobei dann ein struct immer deine 4 farben beinhalten würde
oder willst du ein 2d-array haben.
soll es nur c sein oder geht auch c++?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.11.2003, 13:56 Uhr
~Gast
Gast


Es soll wenn möglich nur c sein.
Also was ich will und was ich mach weiß ich noch nicht.

Ich hab mir das jetzt so vorgestellt.

Textdatei Variable (Array)
Zeile 1 07 farbe[1]
Zeile 2 06 farbe[2]
Zeile 3 15 farbe[3]
Zeile 4 02 farbe[4]


Ps.: ThWboard code, welche html befehl ist das?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
28.11.2003, 14:10 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


peil ich gerade gar nicht wie du das meinst.
oben hast du doch immer 4 zahlen in eine zeile geschrieben, ist das jetzt anders?
wenn nicht schreib mir mal ein paar mehr (2-3) beispielzeilen aus der textdatei auf...
Gehören ggf. die 4 zahlenwerte einer zeile zusammen zu einer farbe? Wenn ja würde ich ein struct draus machen
--
...fleißig wie zwei Weißbrote
 
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: