Zeilenumbruch als Zeichen darstellen



  • Die Idee hatte ich auch schon, allerdings kannte ich die Zahlen nicht und andersrum wollte er mir nur 0 ausspucken, danke ich versuchs mal mit 10 oder 13.



  • http://www.torsten-horn.de/techdocs/ascii.htm

    drucken drucken drucken

    hab ich an allen 3 schreibtischen an denen ich programmiere^^



  • Test << char(13);
    

    Hat wundervoll funktioniert, wobei Test ein ofstream ist.
    Viel Dank.

    EDIT: Hab ich nur von Dez Zahl 32 aus, deshalb wusste ichs nicht



  • Barados schrieb:

    http://www.torsten-horn.de/techdocs/ascii.htm

    drucken drucken drucken

    hab ich an allen 3 schreibtischen an denen ich programmiere^^

    unnötig - so gar sinnlos...
    man brauch überhaupt nix über den zeilenumbruch zu wissen, wenn man einfach alles ausliest, den teil ändernt, den man ändern möchte und dann wieder alles schreibt...

    bb



  • Ha ha ha sehr witzig

    man brauch überhaupt nix über den zeilenumbruch zu wissen, wenn man einfach alles ausliest, den teil ändernt, den man ändern möchte und dann wieder alles schreibt...

    dummer weise liest er mit das Zeichen als Zeilenumbruch und "wandelt es in diesen um". bzw getline interpretiert es als Zeilenumbruch. Ich muss diesen Neuschreiben, weil weil... es geht einfach nicht so einfach.



  • Ganz nebenbei, es funktioniert irgendwas nicht, ich sehe den Fehler aber nicht, das Spiel will das nicht akzeptieren, manuelles änder hat aber funktioniert.
    Original directory.ini:

    P_00r_00o_00f_00i_00l_00e_00s_00_3D_005_00c_00r_00i_00p_00t_00_2C_00C_00r_00a_00c_00k_00e_00d_00P_00r_00o_00f_00i_00l_00e_00_2C_00T_00e_00R_00R_00o_00R_00U_00n_00i_00t_00_2C_00T_00h_00e_00R_00a_00g_00e_00
    C_00u_00r_00r_00e_00n_00t_00P_00r_00o_00f_00i_00l_00e_00_3D_005_00c_00r_00i_00p_00t_00
    

    neu:

    P_00r_00o_00f_00i_00l_00e_00s_00_3D_005_00c_00r_00i_00p_00t_00_2C_00C_00r_00a_00c_00k_00e_00d_00P_00r_00o_00f_00i_00l_00e_00_2C_00T_00e_00R_00R_00o_00R_00U_00n_00i_00t_00_2C_00T_00h_00e_00R_00a_00g_00e_00_2c_00M_00e_00g_00a_00
    C_00u_00r_00r_00e_00n_00t_00P_00r_00o_00f_00i_00l_00e_00_3D_005_00c_00r_00i_00p_00t_00
    

    ich weiß nicht worans liegt, eventuell an dem Zeilenumbruchszeichen ?
    keine Ahnung aber so akzeptiert er es nicht.
    Fällt jemand eventuell was ein ?
    übrigens hier etwas code:

    whole = File.substr(0,File.size()-1);
    whole += "_2c_00";
    whole += CnCProfName;
    std::ofstream Test;
    Test.open("Outer.txt");
    Test << whole;
    Test << char(13);
    Test << File2;
    Test << char(13);
    Test << char(13);
    Test.close();
    String^ CF = gcnew String(CurFile.c_str());
    //CopyFile(L"Outer.txt",(LPCTSTR) StringConvT(CF),false);
    

    das CopyFile hab ich erst mal rausgenommen.
    Ich sehe kein Systematischen Fehler

    EDIT: gut das ich zuerst eine Backup Funktion geschrieben habe, die Funktioniert 🙂



  • Zeilenumbruch schreibt man einfach mit '\n' - das char(13) würd ich so nicht benutzen.
    Wenn du allerdings den Zeilenumbruch gerade nicht in die Datei schreiben willst, wieso schreibst du nicht einfach wieder das selbe Zeichen rein das vorher auch drin war? Zeig doch mal Code wie du das mit dem Auslesen machst.
    Und vor allem was der Unterschied ist zwischen dem was dir ausgegeben wird und was du gerne hättest.

    btw: du hast da ein String^ - dir ist klar dass das C++/CLI ist und wir hier aber im Standard-C++ Forum sind?



  • ja ich arbeite ja auch sonst nur im Standart hier, das mit dem String war ne Notlösung weil ichs nicht komplizierter machen wollte, aber der Rest ist doch ISO.

    CurFile = AWD;
    		CurFile += "\\directory.ini";
    		std::string Zeichen;
    		std::string whole = "";
    		std::string CnCProfName = "";
    		int i = 0;
    		while (i < Name.size())
    		{
    			i++;
    			std::string ZNNO;
    			ZNNO = Name.substr(i-1,1);
    			ZNNO += "_00";
    			CnCProfName += ZNNO;
    		}
    		bool CurProfRea = false;
    		std::string File,File2;
    		std::ifstream ProfileDir;
    		ProfileDir.open(CurFile.c_str());
    		std::getline(ProfileDir,File);
    		std::getline(ProfileDir,File2);
    

    und das Sonderzeichen Zeilenumbruch wird im String umgewandelt in einen
    Im Forum ist sichtlich genauso aus dem Zeichen wird der Umbruch und das ist ja mein Problem, dass mit char(13) aufgelöst wird, aber funktionieren tut es trotzdem nicht. ich versuchen nur diesen einen Spielernamen einzuarbeiten, wie oben zu sehen.
    Alles scheint richtig, aber das Spiel findet, dass dem nicht so ist
    wenn ich das nun nicht wie oben mache, sondern per Hand die Datei öffne und das Zeugs reinkopiere gehts, weiß der Henker warum.



  • Gehen wir doch mal anders an.
    Ich könnte die Datei ja öffnen, bräuchte sie nicht voll auslesen, und editiere sie einfach nach dem ersten "_2c_00", könnte mir da jemand ein Codebeispiel geben ?



  • Ich hab vor ewigen Zeiten ein Programm geschreiben, dass
    bei \n statt einer neuen Zeile ein Kästchen statt eine neue Zeile
    schreibt, unabsichtlich.
    Trotzdem wird es mit getline als Zeile gelesen, ich glaub ich
    hab die Lösung gefunden, ich kann nur nicht sagen, wie
    ich das gemacht habe.
    liegt es an ios::binary ? kann doch eigentlich nicht sein.

    EDIT: Doch es ist ganz sicher ios::binary, habe es im neuen Programm geändert.
    Aber wieso macht er das ?



  • Und Super es funktioniert !!!
    Warum macht er geht es nun warum macht er aus char(10) jetzt ein Zeichen.
    char(13) ging nicht. Ist ja auch das falsche Zeichen char(10) als Zeichen geht !!!



  • Das ist der Unterschied zwischen windows- und Linux Zeilenumbrüchen den ich oben angesprochen hab. Das was in einigen Windowsprogrammen (z.B. notepad) als Kästchen dargestellt ist, ist der Zeilenumbruch in Linux, der aus einem Zeichen besteht. Der Windows-zeilenumburch besteht aus zwei Zeichen.


Anmelden zum Antworten