Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

werte einer exel-tabelle mit c++ einlesen.

guten abend

ich habe eine exel tabelle mit knapp hundert feldern voll mit einstelligen zahlen.
kann ich diese irgendwie durch ein c++ programm einlesen, dass diese als int A1,A2,.....,A100 im programm verwendet werden können?

gruss Claudio


Antworten zu werte einer exel-tabelle mit c++ einlesen.:

glauhb ich kaum, da exel die dateien verschlüsselt, da is nich so einfach mal einlesen. Ihr könnt mich auch eines besseren belehren  ;)

und wie siehts aus mit einlesen aus einer txt datei
 
in diesem stil (aufbau der txt datei)

1    7    8    9    5   .......
6    8    3    4    3   .......
...............................
...............................

das sollte möglich sein. Wäre aber leichter wenn du die wärte immer untereinander anordnest:

1
3
6
612
135
...

meinst du jetzt in exel oder als txt?

ja aber wie würde denn das gehen, das ist ja die zentrale frage

oho bin da grad aus was gestossen...
mal schauen ob das klappt:
http://www.spotlight.de/zforen/cpp/m/cpp-1126174842-15168.html

Na dann benutz das doch oder machs als txt. Is halt lang nich so aufwändig.

also habs mal versucht das zu compilieren,
naja etwa 50 fehler sinds schon...

wie gehts denn als txt?

mit tab dazwischen

also der befehl an sich ist folgender:

#include <stdio.h>

int main()
{
  FILE *datei;
  char a1[100];
 
  datei = fopen("text.txt", "r");
  if (!datei) {
    printf("Fehler!");
    getchar();
    return 0;
  }
 
  fscanf(datei, "%s", a1);
  printf("%s", a1);
 
  fclose(datei);
  getchar();
  return 0;
}

hmm er nimmt aber nur die erste zahl rein...

oder speichert er die anderen als int ab?

#include <stdio.h>

int main()
{
  FILE *datei;
  char a1[100];
  char a2[100];
  char a3[100];
  //...
 
  datei = fopen("text.txt", "r");
  if (!datei) {
    printf("Fehler!");
    getchar();
    return 0;
  }

  fscanf(datei, "%s", a1);
  fscanf(datei, "%s", a2);
  fscanf(datei, "%s", a3);
  //...
  printf("%s\n%s\n%s", a1, a2, a3);
 
  fclose(datei);
  getchar();
  return 0;
}

Beliebig oft erweiterbar. char[100] kannste natürlich noch anpassen auf z.b. char [20]
« Letzte Änderung: 06.01.06, 00:02:54 von matze-ulm.de »

es geht eben im prinzip darum, dass der Benutzer möglichs einfach
ein sudokufeld vorgeben kann 9 x 9 quadrat

und die einzelnen zahlen dann als int einliest (deshalb wäre exel praktisch)

am besten wäre natürlich wenn er gerade die erste zeile als A bezeichnen würde und die erste zahl in der ersten zeile demnach
A1 die zweite A2 und so weiter
zeile 2: B1,B2,....
und so weiter

is ein bischen kompliziert das einlesen..

es sollte mal ein sudoku solver werden (mini projekt für schule)

soduko solver? wasn das?

naja ein kleines programm das ein sudoku auflöst

nochne frage:
wenn ich diese einzelnen zahlen anzeigen will in c++
muss ich doch:

cout << a1;
cout << a2;
...

er hat damit aber ein problem: cout undeclared (first use this function)
ich wollte es ganz am schluss for return einfügen.
 
muss ich noch ein neues include <iostream.h> machen oder so?

mh, ka, der quelltext ist halt in c... c++ weiß ich nicht wies geht

er speichert die eingelesenen zahlen schon als a1,a2,.... oder?

hmm wer weiss wie man mit den eingelesenen zahlen weiterarbeiten kann?

einlesen funktioniert prima, danke!

aber ich sollte mit diesen als a1,a2,...  abgespreichert
weiterarbeiten können

Also, erstmal musst du die char Variable in eine int Variable umkopieren (z.B. zum rechnen) Das ganze geht mit

i = atoi(a1);

Damit wird der inhalt von a1 in i (kann natürlich auch anders heißen) umgewandelt, dürfen halt NUR Zahlen sein! In unserem Beispiel:

#include <stdio.h>
#include <windows.h>

int main()
{
  FILE *datei;
  char a1[100];
  char a2[100];
  char a3[100];
  //...
  int test = 0;

  datei = fopen("text.txt", "r");
  if (!datei) {
    printf("Fehler!");
    getchar();
    return 0;
  }

  fscanf(datei, "%s", a1);
  fscanf(datei, "%s", a2);
  fscanf(datei, "%s", a3);
  //...
  printf("%s\n%s\n%s", a1, a2, a3);
  test = atoi(a3);
  test++;
  printf("\n%d", test);

 
  fclose(datei);
  getchar();
  return 0;
}

Der Befehl befindet sich in windows.h, nicht vergessen!

Man jetzt bin ich aber stolz! ;D Werd jetzt schlafen gehn, ich schau morgen nachmittag nochmal nach dem thread. sonst auch:
www.matze-ulm.de.vu
icq: 314-906-446

hmmm..
alles TIP TOP
ich bin auch stolz auf dich  ;)

aber leider leider geht bei mir cout nicht
wenn ich was zusammenrechnen will und die summe anzeigen zum beispiel

x = atoi(a1)
y = atoi(a2)
z = atoi(a3)

cout << x;
cout << "und";
cout << y;

(zum beispiel)
(bei cout immer selber fehler: cout undeclared [first use this funktion]   )

#include <stdio.h>
#include <windows.h>
#include <iostream>

int main()
{
  FILE *datei;
  char a1[100];
  char a2[100];
  char a3[100];
  //...
  int x, y, z, a;

  //Öffnen der Datei
  datei = fopen("text.txt", "r");
  if (!datei) {
    printf("Fehler!");
    getchar();
    return 0;
  }

  //Lesen der einzelnen Zeilen
  fscanf(datei, "%s", a1);
  fscanf(datei, "%s", a2);
  fscanf(datei, "%s", a3);
  //...

  //Umwandeln con char -> int
  x = atoi(a1);
  y = atoi(a2);
  z = atoi(a3);

  //Rechnen
  a = x+y+z;

  //Ausgabe
  cout << x << endl;
  cout << "\n+\n" << endl;
  cout << y << endl;
  cout << "\n+\n" << endl;
  cout << z << endl;
  cout << "\n=\n" << endl;
  cout << a << endl;

  //Datei wird geschlosssen
  fclose(datei);

  //Abschluss
  getchar();
  return 0;
}

Die eingelesenen Zahlen werden weiterverwendet (mit ihnen wird gerechnet). Die Bibliothek #include <iostream> hat gefehlt und der aufbau von cout ist cout << "Text" << endl;

herzlichen Dank...

werds heute nachmittag weiter bearbeiten mal schauen was daraus wird...
wenn ich mal fertig bin kann ich dir ja das programm mailen wenn du interesse hast.

gruss
decla

oder hier posten. Hoffe ich konnte dir weiterheflen, dann noch viel glück  ;)

mfg matze 8)

das wird so seine zeit in anspruch nehmen,
hab noch jede menge anderer arbeit ;)
ja danke du hast mir sehr geholfen..

jetzt hätte ich nochmal ne frage..

mein programm sollte die grösse einer datei, die in Maschinencode geschrieben ist auslesen.
sprich: sie sollte die bytes der datei auslesen und ausgeben.

wie geht das?


« Tabellenrückabe OracleFragen zur Batch-Programmierung »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Undo
"Undo" steht für "Rückgängig machen": eine häufig genutzte Funktion n vielen Programmen und Apps, die es ermöglicht, kürzlich durchgefü...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...