Variablen für Speicherort bei ifstream



  • Wie kann ich mit 2 Variablen (Datum und Uhrzeit)abfragen lassen und diese dann mit dem Speichertort (c:\\windows\\dokummente und einstellungen\\desktop\) in ifstream einbinden??

    cout<<"Geben Sie Bitte ein Datum ein z.B. 010109 "<<endl;
    cin>> Datum;
    
    cout<<"Geben Sie Bitte die Uhrzeit ein z.B. 125959 "<<endl;
    cin>> Uhrzeit;
    
    ifstream Eingabedatei("c:\\Dokumente und Einstellungen\\Administrator\\Desktop\\Datum + Uhrzeit <<"); // ????? wie einfügen
    

    es sollte mit ifstream realisiert werden
    kann mir jemand helfen, vielen Dank



  • cout<<"Geben Sie Bitte ein Datum ein z.B. 010109 "<<endl;
    cin>> Datum;
    
    cout<<"Geben Sie Bitte die Uhrzeit ein z.B. 125959 "<<endl;
    cin>> Uhrzeit;
    
    ifstream Eingabedatei("c:/Dokumente und Einstellungen/Administrator/Desktop/Datum + Uhrzeit <<");
    
    Eingabedatei << Datum << " " << Uhrzeit << std::endl;
    

    so zum Beispiel...
    Aber was ist das für ne Datei?
    "Datum + Uhrzeit <<"
    keine Endung? 2 Shifts im Dateiname sind wahrscheinlich auch nicht mit Absicht da?!
    Es gibt btw ne API-Fkt um wichtige Pfad herauszubekommen:
    http://msdn.microsoft.com/en-us/library/bb762204(VS.85).aspx
    bzw.
    http://weseetips.com/2008/05/01/how-to-get-the-path-of-special-folders-in-windows/

    Hoffe mal, dass dich das weiterbringt - sieht auch ein wenig hübscher aus als nen ellenlanger Datei-Name und funktioniert wenigstens überall ^^

    bb



  • unskilled schrieb:

    cout<<"Geben Sie Bitte ein Datum ein z.B. 010109 "<<endl;
    cin>> Datum;
    
    cout<<"Geben Sie Bitte die Uhrzeit ein z.B. 125959 "<<endl;
    cin>> Uhrzeit;
    
    ifstream Eingabedatei("c:/Dokumente und Einstellungen/Administrator/Desktop/Datum + Uhrzeit <<");
    
    Eingabedatei << Datum << " " << Uhrzeit << std::endl;
    

    so zum Beispiel...
    Aber was ist das für ne Datei?
    "Datum + Uhrzeit <<"
    keine Endung? 2 Shifts im Dateiname sind wahrscheinlich auch nicht mit Absicht da?!
    Es gibt btw ne API-Fkt um wichtige Pfad herauszubekommen:
    http://msdn.microsoft.com/en-us/library/bb762204(VS.85).aspx
    bzw.
    http://weseetips.com/2008/05/01/how-to-get-the-path-of-special-folders-in-windows/

    Hoffe mal, dass dich das weiterbringt - sieht auch ein wenig hübscher aus als nen ellenlanger Datei-Name und funktioniert wenigstens überall ^^

    bb

    des is ne csv Datei

    Ich muss einfach den Speicherort (Ordner und Name der Datei) angeben diese mit ifstream einlesen verarbeiten und ausgeben.

    Die shifts sind unabsichtlich reingerutscht


  • Administrator

    Ich frage mich, ob hier nicht ein variabler Speicherort gemeint war in Verbindung mit Datum und Uhrzeit. Also sowas:

    std::cout << "Geben Sie Bitte ein Datum ein z.B. 010109: "
              << std::endl;
    
    std::string date;
    std::geline(std::cin, date);
    
    std::cout << "Geben Sie Bitte die Uhrzeit ein z.B. 125959: "
              << std::endl;
    
    std::string time;
    std::getline(std::cin, time);
    
    std::string path = "c:/Dokumente und Einstellungen/Administrator/Desktop/";
    path += date;
    path += " ";
    path += time;
    path += ".txt";
    
    std::ifstream input(path.c_str());
    

    Ansonsten empfehle ich, dass du das nächste Mal die Beschreibung deines Problems etwas deutlicher machst.

    Grüssli



  • Dravere schrieb:

    Ich frage mich, ob hier nicht ein variabler Speicherort gemeint war in Verbindung mit Datum und Uhrzeit. Also sowas:

    std::cout << "Geben Sie Bitte ein Datum ein z.B. 010109: "
              << std::endl;
    
    std::string date;
    std::geline(std::cin, date);
    
    std::cout << "Geben Sie Bitte die Uhrzeit ein z.B. 125959: "
              << std::endl;
    
    std::string time;
    std::getline(std::cin, time);
    
    std::string path = "c:/Dokumente und Einstellungen/Administrator/Desktop/";
    path += date;
    path += " ";
    path += time;
    path += ".txt";
    
    std::ifstream input(path.c_str());
    

    Ansonsten empfehle ich, dass du das nächste Mal die Beschreibung deines Problems etwas deutlicher machst.

    Grüssli

    Dann versuche ich das mal deutlicher:

    ich habe ein File :
    010109-125959-raw.csv
    Datum-Uhrzeit-raw.csv

    Diese File wird jeden Tag ein oder mehrmals erzeugt, der Anwender muss eintragen wie des File heißt, deswegen frage ich das Datum und die Zeit ab.
    Der Name der Datei beinhaltet also Datum-Uhrzeit.

    Ich muss Datum und Uhrzeit zusammenpacken um das ganze in ifstream MIT ORDNERBEZEICHNUNG auslesen und verarbeiten.

    der Pfad lautet des ordners c:/Dokumente und Einstellungen/Administrator/Desktop/


  • Administrator

    Gut, dann war ich also doch richtig. Was stimmt denn nun nicht an meiner Lösung, abgesehen, dass man nicht ".txt" nehmen sollte am Ende, sondern ein "-raw.csv" und statt des Leerzeichen ein Bindestrich '-' dazwischen.
    Also frag, wenn du etwas nicht begreifst an meiner vorgeschlagenen Lösung 🙂

    Grüssli



  • Dravere schrieb:

    Gut, dann war ich also doch richtig. Was stimmt denn nun nicht an meiner Lösung, abgesehen, dass man nicht ".txt" nehmen sollte am Ende, sondern ein "-raw.csv" und statt des Leerzeichen ein Bindestrich '-' dazwischen.
    Also frag, wenn du etwas nicht begreifst an meiner vorgeschlagenen Lösung 🙂

    Grüssli

    std::cout << "Geben Sie Bitte ein Datum ein z.B. 010109: "
              << std::endl;
    
    std::string date;
    std::getline(std::cin, date);
    
    std::cout << "Geben Sie Bitte die Uhrzeit ein z.B. 125959: "
              << std::endl;
    
    std::string time;
    std::getline(std::cin, time);
    
    std::string path = "c:/Dokumente und Einstellungen/Administrator/Desktop/";
    path += date;
    path += "_";
    path += time;
    path += "_";
    path += "raw";
    path += ".csv";
    
    std::ifstream Eingabedatei(path.c_str());
    
    std::cout <<path.c_str();
    

    wenn ich das compiliere dann kommt das hier als pfad

    c:/Dokumente und Einstellungen/Administrator/Desktop/010109__raw.

    time fehlt da?????


  • Administrator

    Genau diesen gezeigten Code, führt bei mir zu dieser Ausgabe:

    Geben Sie Bitte ein Datum ein z.B. 010109:
    010109
    Geben Sie Bitte die Uhrzeit ein z.B. 125959:
    125959
    c:/Dokumente und Einstellungen/Administrator/Desktop/010109_125959_raw.csv
    

    Die beiden Eingaben, habe ich natürlich hingeschrieben 🙂

    Also irgendwo hast du einen Fehler gemacht. Der liegt aber sicher nicht in dem gezeigten Code, denn dieser funktioniert einwandfrei.

    Grüssli



  • Dravere schrieb:

    Genau diesen gezeigten Code, führt bei mir zu dieser Ausgabe:

    Geben Sie Bitte ein Datum ein z.B. 010109:
    010109
    Geben Sie Bitte die Uhrzeit ein z.B. 125959:
    125959
    c:/Dokumente und Einstellungen/Administrator/Desktop/010109_125959_raw.csv
    

    Die beiden Eingaben, habe ich natürlich hingeschrieben 🙂

    Also irgendwo hast du einen Fehler gemacht. Der liegt aber sicher nicht in dem gezeigten Code, denn dieser funktioniert einwandfrei.

    Grüssli

    habe das ding nochmal kopiert, und immer noch das selbe, vielleicht spinnt mein visual studio.

    Was für nen compiler benutzt du??

    oder vielleicht sind es die Header ??

    #include <cstdlib>
    #include <iostream>
    #include <fstream>        // fuer Dateizugriffe
    #include <cstring>
    #include <iomanip>
    #include <math.h>
    #include <string>
    
    using namespace std;
    

    bin für jede ideee zu haben, vielen dank Dravere



  • Das einzige, was es hier zu meckern gibt ist das math.h. (eher cmath!).


  • Administrator

    1Aiden schrieb:

    habe das ding nochmal kopiert, und immer noch das selbe, vielleicht spinnt mein visual studio.

    Was für nen compiler benutzt du??

    Zeig uns einen kleinen lauffähigen Code, welcher den Fehler produzierst, den du beschreibst. So können wir dir am besten helfen. Der Code sollte aber wirklich nicht zu gross sein 😉

    Grüssli


Anmelden zum Antworten