daten in datei schreiben



  • hallo , ich habe das problem das meine daten nicht richtig in meine datei geschrieben werde. ich habe mich mit der suche hier + bei google bemüht, konnte jedoch kein genaues beispiel fuer meinen fehler bekommen.

    also ich möchte einen string in eine textdatei schreiben.
    ich habe ja zuvor versionsinformationen aus einer datei ausgelesen und in einen string geschrieben.
    ich kann auswählen ob nur die dateinamen angezeigt werden sollen oder ob die dateiversionen auch mit angezeigt werden sollen.

    wenn ich die daten speicher will (also nur die dateinamen) dann klappt das wunderbar. will ich jedoch die versionsnummer dazu speichern schreibt er gar nichts mehr in die datei.

    die versionsnummern stehen vor dem schreiben definitiy in printfile sowie ind printfile_c drin.

    alle daten stehen in 1 string.

    hier der code:
    (keine fehler/keine warnungen)

    CString printfile;
    
      char nline[5];
    
      char corrc[25];
      char logging[25];
      char kpskdll[25];
      char decomd[25];
      char corrcalcdll[25];
      char show[25];
      char tbm[25];
      char kpsk[25];
    
      strcpy(kpsk,"KPSK_Debugger.exe");
    
      strcpy(tbm,"TBMain.exe");
      strcpy(corrc,"CorrCalc32_Config.exe");
      strcpy(logging,"Logging.dll");
      strcpy(kpskdll,"KPSK_DLL.dll");
      strcpy(decomd,"decomp32.dll");
      strcpy(corrcalcdll,"corrcalc32.dll");
      strcpy(show,"ShowCurves.exe");
      strcpy(nline,"\n");
    
      printfile = kpsk + m_kpsk + nline
                  +tbm + m_tbmain + nline
                  +show + m_showcurves + nline
                  +corrc + m_corrcalcconfig + nline + nline
                  +logging + m_loggingdll + nline
                  +kpskdll + m_kpskdlldll + nline
                  +decomd + m_decompdll + nline
                  +corrcalcdll + m_corrcalcdll;
    
      fstream datei ("VersionsInfo.txt"); 
    
      char printfile_c[3000];
      strcpy(printfile_c,printfile);
    
      datei << printfile_c;
    
      datei.seekg(0);
    
           while(datei.good())
            {
    
            datei >> printfile_c;
            }
    
      datei.close();
    
      MessageBox (printfile,"Info Speichern");
    

    vielen dank schonmal !!



  • Also als erstes solltest du auf die char[] verzichten - verwend' lieber std::string's (notfalls auch CString's), um deine Ausgabe zusammenzufassen.
    Zweitens kannst du auch mehrere Ausgaben hintereinander durchführen:

    fstream datei("Version.txt");
    datei<<kpsk<<m_kpsk<<endl;
    datei<<tbm<<m_tbmain<<endl;
    ...
    

    Drittes solltest du mal überprüfen, was in den m_* Variablen drinsteht.

    (und viertens: Wozu dient eigentlich die while-Schleife am Ende?)



  • also wenn ich das als string deklariere habe ich wieder probleme mit der konvertierung deswegen hatte ich das als char deklariert.

    in den m_variablen stehen die versionsnummer drin. das ist ja das komische. in printfile steht, wenn ich mit dem debugger durchgehe genau die werte die ich ausgeben möchte also auch mit bezeichnung + nummer. weiss nur nicht wieso er die da nicht reinschreibt.

    die schleife habe ich übernommen weil ich den beispielcode gefunden habe. habe sie grade einmal weggelassen und es funktioniert genauso.

    danke soweit 🙂


Anmelden zum Antworten