Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Dateien Konvertieren

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 <
000
08.11.2007, 09:38 Uhr
Poe



Hallo,
ich möchte Dateien aus einem Verzeichnis auslesen und konvertieren.
Ich hab einen Codeabschnitt der die Dateien Konvertieren soll bekommen und suche die Dateien mit einer FindFirsFile-Funktion aus dem Verzeichnis.
Allerdings schaffe ich es nicht die Funktionen zu verknüpfen.



C++:

#include <windows.h>
#include <cstdio>
#include <io.h>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <tchar.h>
#include <shlobj.h>

using namespace std;

void charOutput (ifstream& stream);
void copyChar4Char (ifstream& stream, ofstream& stream);

#pragma pack(push,2)

typedef float         FLOAT;
typedef unsigned char UCHAR;
typedef char          CHAR;
typedef short int     SHORT;
typedef time_t        DATE_TIME;


typedef union _proz_wert_union {  /* Union für den Prozeßwert */
  FLOAT Wert;               /* für Analogeingänge einen Float  */
  UCHAR Zustand;            /* für Digitaleingänge einen UCHAR */
} PROZ_WERT_UNION;          /* 4 Byte entsprechend dem größen Member */


typedef struct _dea_archiv_typ { /* Bytes Bedeutung                               */
  DATE_TIME       Startzeit;      /*  4  Startzeit des Intervalls                 */
  SHORT           Millisec;       /*  2  Millisec. bei Echtzeitverarb. sonst. -1  */
  PROZ_WERT_UNION Wert;           /*  4  union für den Prozeßwert                 */
  UCHAR           Kennung;        /*  1  Kennung des archivierten Wertes          */
  CHAR            Grund;          /*  1  Archivierungsgrund                              */
} DEA_ARCHIV_TYP;                 /* 12  Byte pro Archiveintrag                   */
#pragma pack(pop)



int main ()

{
    
    

    HANDLE fHandle;
    WIN32_FIND_DATA wfd;

                    fHandle=FindFirstFile("C:\\Osnabrueck\\DEA\\2007\\09\\*",&wfd);

                    do
                    {                  
                    // Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert)

                       if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
                       {
                         if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                         {
                           MessageBox(0,wfd.cFileName,"Folgendes Verzeichnis wurde gefunden:",0);
                           // Datei ist keine, sondern ein Verzeichnis...
                            
                         }
                         else
                         {
  
                          cout << wfd.cFileName << endl;  //Namen der Dateien ausgeben
                            ifstream f1(wfd.cFileName);
                              //charOutput( f1 );
  
          
                          }
                          }
                          }
                     while (FindNextFile(fHandle,&wfd));
          FindClose(fHandle);

       cin.get();
}





int Konvert(int argc, _TCHAR* argv[])
{

    _TCHAR filename[FILENAME_MAX + 1];

                          if (argc != 2) {
                           printf("Unzulaessige Parameterzahl!\n");
                           printf("Aufruf:\n");
                           printf("DEAConverter <Dateiname>\n");
                        return 0;
                     }

                      _tcsncpy(filename, argv[1], FILENAME_MAX);
                       FILE *f = _tfopen(filename, _T("rb"));
                        if (f) {
                             DEA_ARCHIV_TYP DEARecord;
                               while(!feof(f)) {
                                     fread(&DEARecord, sizeof(DEARecord), 1, f);
                                        struct tm stm = *localtime(&DEARecord.Startzeit);
                                           printf("%02d.%02d.%04d %02d:%02d.%02d,%03d : ", stm.tm_mday
                                                  , stm.tm_mon
                                                  , stm.tm_year
                                                  , stm.tm_hour
                                                , stm.tm_min
                                                , stm.tm_sec
                                                , DEARecord.Millisec > 0 ? DEARecord.Millisec : 0);

                                         printf("DEARecord: Zustand = %d, Kennung = %d, Grund = %c\n", DEARecord.Wert.Zustand
                                         , DEARecord.Kennung
                                         , DEARecord.Grund);

                                       }

                                 fclose(f);
                                 }
   cin.get();
return 0;

}  



Ich bin für jede Hilfe dankbar!!
Bin am verzweifeln, bitte helft mir!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.11.2007, 11:14 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Du solltest den Funktionskopf von Konvert ändern. Anscheinend war das mal ein eigenständiges Programm das den Dateinamen beim Aufruf übergeben bekommen hat.

Mach da einfach ein int Konvert(TCHAR* filename) draus und arbeite damit.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: