Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » fortsetzung logfile...

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
11.08.2004, 15:54 Uhr
NotUsed



hi ich hab jetzt beim logfileauslesen ein bisschen weiter gemacht...

keine fehler beim kompilieren aber dafür beim ausführen

nächstes problemchen hier:
LogFileScan.obj : error LNK2001: Nichtaufgeloestes externes Symbol "void __cdecl choosefile(char * const)" (?choosefile@@YAXQAD@Z)
LogFileScan.obj : error LNK2001: Nichtaufgeloestes externes Symbol "void __cdecl path(char * const,char * const)" (?path@@YAXQAD0@Z)

hab nur so ne ahnung was das sein könnte, aber keine lösung dafür :

ansonsten machs ich halt morgen fertig



C++:
#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>
#include <ctime>
#include <windows.h>
#include <dirent.h>


using namespace std;
typedef char feld[260];
feld pfad,suchterm,datnam;
int nummer;



//Prototypes
void choosefile(feld);
int syszeit();
int read(feld);
void path(feld,feld);


//Main
int main()
{
    syszeit();
    cout<<endl<<endl;
    path(pfad,datnam);
    choosefile(datnam);
    //read(datnam);
    getch();
    return 0;
}

//Read
int read(feld datnam)
{
    cout<<"Nach welchen term wollen sie suchen?"<<endl;
    cout<<"Suchterm: ";
    cin>>suchterm;
    cout<<endl;
    std::string line;
    std::ofstream os("Result.txt");
    std::ifstream is(datnam);
        while(is)
            {
            std::getline(is,line);
                if((int)line.find(suchterm)!=-1)
                    os<<line<<std::endl;
            }
os.close();
is.close();
return 0;
}

//choose
void choosefile(feld datnam[])
{
    
    cout<<endl<<"Welche Datei wollen sie scannen (nummer , oder (a)lle)"<<endl;
    cin>>nummer;
    switch(nummer)
    {
    case 'a':    {
                int i=0;
                while(read(datnam[i])!=0)
                    i++;

                break;
                }

    case '1': read(datnam[1]);break;
    case '2': read(datnam[2]);break;
    case '3': read(datnam[3]);break;
    case '4': read(datnam[4]);break;
    case '5': read(datnam[5]);break;
    case '6': read(datnam[6]);break;
    case '7': read(datnam[7]);break;
    case '8': read(datnam[8]);break;
    case '9': read(datnam[9]);break;
    default : cout<<endl<<"Falsche eingabe"<<endl;
    };
}



//Choose folder
void path(feld pfad,feld datnam[])
{

    _finddata_t s;

    long handle;
    cout<<"In welchen Ordner soll gescannt werden?"<<endl;
    cout<<"(normaler windows pfad aber mit doppelten \\ bitte !)"<<endl<<endl;
    cout<<"Ordner: ";
    cin>>pfad;
    cout<<endl;
    int i=0;
    handle=_findfirst(pfad,&s);
    do
    {
        strcpy(datnam[i],s.name);
        i++;
        cout<<i<<" ";
        cout<<s.name<<endl;
    }
    while(_findnext(handle, &s)==0);
    _findclose(handle);
    
}


//Time        //will später noch etwas damit anfangen (jedes monat andere ausgabefile oder so ...)
int syszeit()
{
time_t  datum;
struct tm *tmzgr;
char zeit[30];


datum = time(NULL);
tmzgr = localtime(&datum);
strftime(zeit,30,"%c",tmzgr); //anstatt %c kann man auch folgende Formatzeichen eingeben

  cout << zeit;
  
//system("pause");
return 0;
}

/*
Formatzeichen:
%A: ausgeschriebener Wochentagsname
%a: abgekürzter Wochentzagsname
%b: abgekürzter Monatsname
%B: ausgeschriebener Monatsname
%c: Datum und Zeit ( Mon Apr 25 07:02:00)
%d: Monatstag (01-31)
%H: Stunde (00-23)
%I: Stunde (01-12)
%j: Tag des Jahres (001-365)
%m: Monat (01-12)
%p: AM oder PM
%S: Sekunden (00-61)
%U: Wochennummer (00-53; 1.Sonntag = 1. Tag der Woche)
%w: Wochentag (0-6; 0 = Sonntag)
%W: Wochennummer (00-53; 1.Montag = 1. Tag der Woche)
%x: Datumsdarstellung
%X: Zeitdarstellung
%y: Jahreszahl ohne Jahrhundert (00 - 99)
%Y: Jahreszahl mit Jahrhundert (2001)
%Z: Zeitzone (z.B. MET)
*/




schönen tag noch...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2004, 20:04 Uhr
0xdeadbeef
Gott
(Operator)


Du benutzt read auf sehr merkwürdige Art und Weise, aber wenn ich richtig verstehe, worauf du hinauswillst, probier mal folgendes in der Deklaration:

C++:
//Prototypes
void choosefile(feld[]);
int syszeit();
int read(feld);
void path(feld,feld[]);


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.08.2004, 08:22 Uhr
NotUsed




Code:

--------------------Konfiguration: LogFileScan - Win32 Debug--------------------
Kompilierung läuft...
LogFileScan.cpp
C:\projects\LogFileAuswertung\LogFileScan.cpp(29) : error C2664: 'path' : Konvertierung des Parameters 2 von 'char [260]' in 'char [][260]' nicht moeglich
        Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
C:\projects\LogFileAuswertung\LogFileScan.cpp(30) : error C2664: 'choosefile' : Konvertierung des Parameters 1 von 'char [260]' in 'char [][260]' nicht moeglich
        Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.

LogFileScan.obj - 2 Fehler, 0 Warnung(en)


naja jetzt is der fehler schon beim kompilieren da...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.08.2004, 08:31 Uhr
NotUsed



also wenn ich beim aufruf auch felder nehmen will, muss ich einen wert einsetzen...
ich könnte jetzt choosefile ins main nehmen, und dort weiterarbeiten, möchte ich aber vermeiden.

also ich werd mich jetzt noch etwas mit der übergabe spielen


C++:
int main()
{
    syszeit();
    cout<<endl<<endl;
    path(pfad,datnam[]);
    choosefile(datnam[]);
    //read(datnam);
    getch();
    return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.08.2004, 12:34 Uhr
NotUsed



so habs jetzt...

musste ein bisschen probieren aber jetzt funzts recht gut
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: