Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Datei laden in C

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
11.06.2007, 15:36 Uhr
0xdeadbeef
Gott
(Operator)


In C würd ich da wohl mit fopen und fscanf rangehen. In C++ wohl eher mit std::vector<float>, std::ifstream, std::ifstream_iterator<float> und std::copy. Im WinAPI...uh...wie ging das da noch gleich...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
11.06.2007, 15:45 Uhr
~stefan0815
Gast


Hmm das Problem ist das ich diese Funktionen in CVI nicht finde.
Wäre ja echt be....... wenn CVI die nicht unterstützt.
Hoffe das ich jemanden finde der sich mit CVI auskennt.
Gibt es vielleicht in diesem Forum jemanden der sich damit schon beschäftigt hat?

Mfg Stefan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
11.06.2007, 15:49 Uhr
0xdeadbeef
Gott
(Operator)


Jede C-Umgebung hat fopen und fscanf, im Header stdio.h. Du bist noch nicht so richtig lange mit C vertraut, oder? Vielleicht solltest du erstmal gehen lernen, bevor du dich in realtime-Projekte stürzt...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
11.06.2007, 15:51 Uhr
~stefan0815
Gast


Ich muss gestehen das ich es schon mal gelernt hätte ist aber schon ein zeital her und ich muss erst wieder reinkommen.
Die stdio habe ich geladen und ich werde mir mal deinen Vorschlag anschauen.
Danke für deine Hilfe und wenn ich wieder anstehe dann melde ich mich wieder.

Mfg Stefan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
12.06.2007, 07:46 Uhr
stefan0815



Hi

Wollte nur sagen, dass ich es nun gelöst habe das Problem und zwar so


Code:
#include <ansi_c.h>
#include <utility.h>
#include <stdio.h>

FILE *ptr;

int c;

int main (int argc, char *argv[])
{

ptr = fopen("y:\\sensorik\\user\\Stefan\\Leitz\\Leitz_01_00.ASC", "r");

while (( c = fgetc(ptr)) != EOF)
{
  printf("%c",c);
}
fclose(ptr);


while( !KeyHit() ) ;
                                                                

    return 0;
}



Vielleicht kann mir ja jemand sagen ob das so richtig ist oder ob es noch Verbesserungen gibt

Mfg Stefan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
12.06.2007, 08:55 Uhr
Kest
saint


Hi!

Wenn das ganze schon als Standard, dann mach auch >KeyHit()< weg. Benutz enfach >getchar<. Und wenn >*prt< und >c< nur in >main< gebraucht werden, mach sie lokal.
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
12.06.2007, 10:59 Uhr
0xdeadbeef
Gott
(Operator)


...einen Header ansi_c.h zu nennen, ist schon fast etwas zynisch. Die Variablen sollten übrigens auch lokal sein, wenn sie noch in anderen Prozeduren gebraucht werden, für so etwas gibt es Parameter. Globale Variablen sind böse. Das fliegt dir um die Ohren, spätestens wenn du multithreadest, wahrscheinlich schon lange vorher.

C++:
#include <stdio.h>

int main (int argc, char *argv[]) {
  FILE *ptr;
  float values[100];
  int i, j;

  ptr = fopen("y:\\sensorik\\user\\Stefan\\Leitz\\Leitz_01_00.ASC", "r");

  for(i = 0; i < 100 && fscanf(ptr, "%f", &values[i]) == 1; ++i);

  fclose(ptr);

  for(j = 0; j < i; ++j) {
    printf("%f\n", values[i]);
  }

  return 0;
}


So in etwa geht das mit dem Einlesen der floats. Wenn du vorher nicht abschätzen kannst, wie viele Werte du einlesen musst, musste halt mit malloc und realloc den Kram auf dem Heap entsprechend erweitern, wenn mehr Werte kommen. Sinnvoller wärs aber wahrscheinlich, das in der Datei vorne zu speichern, damit du weßt, wie viel Speicher du brauchst. Macht die Verarbeitung einfacher.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 12.06.2007 um 10:59 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
12.06.2007, 11:16 Uhr
stefan0815



Hi

Danke für die Antworten die haben mir sehr geholfen.

Das mit der ansi_c.h Headerdatei ist nicht auf meinem Mist gewachsen sondern ein Header der alle Standardfunktionen von C beinhaltet. Ist halt mal so im LabView CVI.

Das mit den globalen Variablen habe ich nun auch kapiert warum das so gefährlich ist.

Wie gesagt danke nochmal für die Hilfe.

Werde sicher wieder mal was posten wenn ich mal auf der Leitung stehe

Mfg Stefan

Dieser Post wurde am 12.06.2007 um 11:17 Uhr von stefan0815 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


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: