super schwere Frage !
-
"kingruedi" hat dir doch guten link zu diesem thema gegeben.
zeig' was du bis jetzt gecodet hast dann wird dir auch weitergeholfen.
-
toom schrieb:
"kingruedi" hat dir doch guten link zu diesem thema gegeben.
zeig' was du bis jetzt gecodet hast dann wird dir auch weitergeholfen.Das ist nicht so einfach, oder willst du dich durch ueber 1000 Zeilen C-Code durcharbeiten ?
Ich brauche doch nur ein kleines Beispiel um das zuverstehen, wie ich in eine externe datei werte uebergebe und dann wieder hole.
Ausserdem nuetzt mir der Link ueberhaupt nichts, da ich das, was da steht schon weiss !
-
Chris233 schrieb:
Ausserdem nuetzt mir der Link ueberhaupt nichts, da ich das, was da steht schon weiss !
Was willst du denn dann wissen?
-
Shade Of Mine schrieb:
Chris233 schrieb:
Ausserdem nuetzt mir der Link ueberhaupt nichts, da ich das, was da steht schon weiss !
Was willst du denn dann wissen?
Meine Frage ist einfach nur, wie kann ich einen Wert A in eine externe datei schreiben und als variable vergeben.
und wenn ich A aufrufe, soll gleich der richtige wert da sein.
Das ist alles.
-
Du bist n bisschen faul, oder?
Speichere zB in diesem Format
name = value
Dann liest du die ganze Datei in zB eine hashmap ein, und machst immer ein
int value=hashmapGetValue("name");um die Werte auszulesen.
Alternativ kann man natuerlich mit XML einen schoenen overkill produzieren
ne, mal im ernst: was ist dir unklar.
dass ein
$str="name"; $name="value"; echo $$str; //gib "value" aus
nicht geht, sollte wohl klar sein, oder?
-
Ich habe 3 Bücher und eine wichtige internetseite gelesen, wo fast alles über c steht und ich habe keine grosse hilfe gefunden.
WIESO BIN ICH DA FAUL ???!!! ??
Ich bin hier im Forum um Hilfe zu finden. Und nicht um stundenlang mir die Zeit tot zuschlagen.
Mein Problem ist ganz einfach. ( Immernoch ) Ich suche es einfache Lösung, werte in eine extern Datei zuschreiben und auch darauf zuzugreifen.
Ich wollte nicht erst die Datei einlesen und dann noch diese Auswerten.
Ich dachte, es gibt da eine Möglichkeit, die ich nicht kenne.
-
Chris233 schrieb:
WIESO BIN ICH DA FAUL ???!!! ??
Ich bin hier im Forum um Hilfe zu finden. Und nicht um stundenlang mir die Zeit tot zuschlagen.
QED.
-
( Immernoch ) Ich suche es einfache Lösung, werte in eine extern Datei zuschreiben und auch darauf zuzugreifen.
Ich wollte nicht erst die Datei einlesen und dann noch diese Auswerten.
Ich dachte, es gibt da eine Möglichkeit, die ich nicht kenne.Wenn du Werte in einer Datei abspeicherst, dann musst du später einmal auch die Datei lesen; sonst hat das gar keinen Sinn.
Bitte versuche dein Problem etwas genauer zu definieren. Willst du so etwas wie eine .ini Datei erzeugen?
Danke
-
Ich weiß auch nicht woran du jetzt scheiterst. Wenn du wirklich so viel über C gelesen hast sollte das kein Problem für dich sein.
Du musst doch einfach nur mit den Befehlen aus dem Link eine Datei erstellen(fopen), die Option die du in einer Variable gespeichert hast in die Datei schreiben(fprintf oder etwas ähnliches), diese beim nächsten Programmstart wieder öffnen(fopen), den Wert auslesen und zurück in die Variable speichern(fscanf oder etwas ähnliches). (Und natürlich fclose nicht vergessen) Eine andere Möglichkeit sehe ich nicht.(Ist ja auch keine andere Möglichkeit nötig)
Und für einen Newbie(mich): Was heißt QED? RTFM hätte ich ja noch verstanden.
-
Jarvis schrieb:
Und für einen Newbie(mich): Was heißt QED? RTFM hätte ich ja noch verstanden.
QED = quod errat demonstrandum (schlagt mich nicht, wenn ich es falsch geschrieben habe ... lang ists her
) zu deutsch: was zu zeigen/beweisen war; wird meist am Ende eines math. Beweises geschrieben.
übrigens war es RTFF wobei das F wohl auch kein Problem darstellen sollte
Gruß XZ59
-
Chris233 schrieb:
Ich habe 3 Bücher und eine wichtige internetseite gelesen, wo fast alles über c steht und ich habe keine grosse hilfe gefunden.
Und keins der Bücher behandelt das speichern und lesen von Dateien?
Kein Buch erwähnt fopen, fclose, fputc, fputs, fprintf, fgets, fgetc, fscanf, strchr, strtok, strcmp?Ein Tip:
Verbrenn die Bücher ganz schnell, vielleicht können sie durch ihren Brennwert noch zu wenigstens etwas zu gebrauchen sein....
-
XZ59 schrieb:
übrigens war es RTFF wobei das F wohl auch kein Problem darstellen sollte
Danke für die Erklärung.(QED)
Und ich habe schon bewusst RTFM geschrieben. Wird wahrscheinlich öfter in Linux-Foren gebraucht.
(M steht dabei für manual(oder evtl. auch für die man-Pages))
-
Chris233 schrieb:
WIESO BIN ICH DA FAUL ???!!! ??
Es ist nicht schlimm, faul zu sein. Es ist schlimm, zu glauben, die anderen wären das nicht.
-
Leute, Leute, Leute.
Versuchen wir es mal anders.
Ich weiss, wie ich etwas in eine Datei schreibe und auch lese, aber das was ich wissen will, weiss ich nicht.
Vielleicht versteht ihr mich nach dem kleinen Programm.#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #define MAX 20 #define input 20 #define Pi 3.14159265359 #define GRAD 5 #define HOEHE 0.001 #define BREITE 0.001 #define NWINC 5 #define NHINC 5 #define LAY_EINS 0.02 #define LAY_ZWEI 0.04 #define LAY_DREI 0.06 int main(int wieviel , char *argumente[] ) { char *arg1=argumente[1]; char *arg2=argumente[2]; double a=0,b=0; /* jetzt kommen genug Funktionen, struckturen und ausweissungen */ /* und auch berechnungen mit den definierten werten. */ /* wenn der anwender aber die werte aendern will mit den er rechnet und das bei naechsten start noch die gleichen sein sollen, was nun */ /* ach so und natuerlich soll ich ganz einfach damit rechnen wie z.b.*/ a=a+GRAD; b= sqrt(GRAD+BREITE)*pow(GRAD,7); return 0; }
Jetzt klar, was ich will ?
-
ein kleines bsp. wie es aussehen koennte:
#include <stdio.h> #include <stdlib.h> #define RETURN 10 int main (void){ int iZahl, iZaehler = 0 ; char szChar[6] ; FILE * hFile ; if ((hFile = fopen ("c:\\test.dat", "rw")) == NULL){ printf ("fehler beim oeffnen der Datei") ; return 1 ; } do{ szChar[iZaehler] = getc (hFile) ; ++iZaehler ; if ((szChar[iZaehler - 1] == RETURN) || (feof (hFile))){ szChar[iZaehler - 1] = '\0' ; iZahl = atoi (szChar) ; // in iZahl steht jetzt die Zahl iZaehler = 0 ; } } while (!feof (hFile)) ; fclose (hFile) ; return 0 ; }
die test.dat muss dann so aussehen:
12312
23
8282
233
99999immer mit enter die datensaetze von einander trennen. Wie man die Zahlen in die Datei reinschreibt musste auch kein problem sein, oder?
Das ganze ist nur ein bsp. wie du es loesen koenntest. Viele wege fuehren nach Rom.
-
kleines beispiel leider sind noch paar fehler
#include <stdio.h>
int main(int argc, char **argv)
{
int grad;
double breite;
char qw;
FILE *sfile;if ((sfile = fopen("save.txt", "r")) == NULL) { grad = 5; breite = 0.001; }
else { fscanf(sfile, "%i %lf", &grad, &breite); }
close(sfile);printf("werte >>%i %.3lf<< aendern? [j|n]: ", grad, breite);
scanf("%c", &qw);
if (toupper(qw) == 'J')
{
printf("1: "); scanf("%i", &grad);
printf("2: "); scanf("%lf", &breite);
}sfile = fopen("save.txt", "w");
printf("werte >>%i %0.3lf<< gespeichert!\n", grad, breite);
fprintf(sfile, "%i %0.3lf", grad, breite);
close(sfile);return 0;
}
-
@Chris233
Ich versteh einfach dein Problem nicht. Du fragst, wie du Werte in einer Datei speichern kannst und diese auslesen kannst. Auf die Antwort sagst du, dass du weisst, wie du Werte in einer Datei speichern kannst und auslesen kannst um darauf dann wieder die gleiche Frage zu stellen.a) du bist ein Troll?
b) du siehst den Wald vor lauter Bäumen nicht. Im Endeffekt sind die Optionen, von denen du sprichst nur Werte (ausser wenn du define nimmst, deswegen musst du dafür Variablen nehmen). Du schreibst diese einfach in eine Datei (zum Beispiel demo.config) und beim nächsten start liest du die Datei wieder aus bzw. initalisierst die Optionen mit den Default Werten, wenn die Datei nicht existiert.
(btw. kein Grund rumzumeckern :))
-
Jarvis schrieb:
XZ59 schrieb:
übrigens war es RTFF wobei das F wohl auch kein Problem darstellen sollte
Danke für die Erklärung.(QED)
Und ich habe schon bewusst RTFM geschrieben. Wird wahrscheinlich öfter in Linux-Foren gebraucht.
(M steht dabei für manual(oder evtl. auch für die man-Pages))das QED für quod erat demonstrandum steht ist mir bekannt. aber wöfür zum Teufel steht das RTFF???
Danke
-
hat ungefähr die Bedeutung von RTFM (== "Read the fine|fucking manual") nur, dass das F am Ende für FAQ steht (also "Read the fine|fucking FAQ")
bei so Fragen ist Google und die Jargon File recht nützlich
-
Chris233 schrieb:
... /* wenn der anwender aber die werte aendern will mit den er rechnet und das bei naechsten start noch die gleichen sein sollen, was nun */ ...
Jetzt klar, was ich will ?
Natürlich nicht. Du hast z.B. mit keinem Wort erwähnt welche Werte beim nächsten Start gleich sein sollen. ( a und b? oder arg1 arg2 ? )
Die defines kann man jedenfalls nicht ändern.
Genau wie in all deinen vorherigen Postings hast du nur die Hälfte deines Problems erklärt.Ich versuche mal die Informationen, die über all deine vorherigen Postings verstreut sind zusammen zu puzzeln.
Du willst irgendwelche Werte in einer Datei speichern und beim nächsten Programmstart sollen diese Werte irgendwelchen Variablen zugewiesen werden ohne die Datei zu öffnen. Das geht aber nicht. Wenn du Werte aus einer Datei in eine Variable speichern willst musst du die Datei öffnen und auslesen. Da gibt es keinen Trick um das zu umgehen.