Umlaute und Dateien die man nicht öffnen kann

Nord-Süd-Richtung

Erfahrenes Mitglied
Hi

(Wer keine Lust hat sich das alles durchzulesen: Unten steht's nochmal kurz)
zu der Überschrift: Ich wusste nicht wie ich es anders formulieren sollte *g*. Ich habe gleich 3 Anliegen. Da ich meine Kentnisse in Cpp mittels learning by doing verbessern möchte, habe ich mir gleich ein größeres Projekt vorgenommen. Dieses soll mehrsprachig sein. Ich habe mir gedacht, damit mein Programm nicht zu groß wird, lese ich den Text (je nach Sprachauswahl) aus Dateien aus, und lasse ihn ausgeben. Damit der User allerdings diesen nicht ändern kann, würde ich die Dateien gerne so gestalten, das nur mein Programm diese öffnen kann. Ich könnte diese Datei also name.xtf nennen. Das Problem ist, die Endung sieht zwar unbekannt aus, lässt sich aber mittels editor.exe problemlos anzeigen.
Anliegen 2: Ich habe bei google nach Möglichkeiten gesucht, Umlaute in der Konsole darzustellen. Es gab allerdings nie wirkliche Lösungen (die zum Teil fehlerhaft waren). Es sollte möglich sein mittels
C++:
std::cout << "\uxxxx";
Zeichen ausgeben zu können, was allerdings nicht funktionierte.
Anliegen 3:
Resultiert etwa aus anliegen 1. Ich habe ebenfalls längere Zeit gegoogelt und mich durch uralte Foren gewühlt. Ich würde gerne eine Datei öffnen, oder etwas in sie hinein schreiben. Ich bin bei der suche schon auf fgets gestoßen, aber ich habe leider keine Ahnung, bin relativ neu auf cpp.
War jetzt sehr viel Text aber ich hoffe mein Problem ist klar geworden.

Kurz
1: Ich möchte eine Datei speichern, die nur mein Programm öffnen kann, und sonst keins.
2: Ich möchte Sonderzeichen in der Konsole darstellen können
3: Ich möchte Dateien aus 1 öffnen und ändern können.

mfg
 
So

nach weiteren ermüdendem Googlen habe ich nun die Möglichkeit gefunden, Dateien zu öffnen und zu beschreiben/auszulesen. Nur wie kann ich nun verhindern das Andere den Inhalt verändern? Meine Idee wäre eine Verschlüsselung einzubauen, nur kann die Datei dann immer noch geöffnet werden - und geleert. Hat da jemand eine Idee?
 
Ich habe mal so ein programm geschrieben,(nicht mit sprachen, mit dateien), bin jetzt aber leider unterwegs und kann es daher nicht ansehen, aber zu dem mit dem verschluesseln: so in etwa sah das bei mir auch aus:
Code:
//Opens a stream 
fstream fStream; 
             
//Opens the file 
fStream.open(pLogfile,fstream::out | fstream::app | fstream::binary); 

string m_strLogText = "test"; 

//Buffer 
char strBuffer[255]; 

//Gives the text into the buffer 
sprintf(strBuffer,"%s",m_strLogText.c_str()); 

//Writes it into the file 
fStream.write((char*)strBuffer,strlen(strBuffer)); 

//Close the file 
fStream.close();
durch das binary kann man die datei nicht mit nem normalen texteditor oeffnen. (glaub ich ich bin mir nicht sicher, aber probiers mal aus
 
Achja(Da das mit dem editieren irgendwie nicht klappt:confused: jetzt hier)
du musst natuerlich noch die datei fstream includen.
Wenn dir das nicht hilft google einfach mal nach fstream dateien auslesen schreiben und vielleicht noch binaer anhaengen.
 
Hi.
Damit der User allerdings diesen nicht ändern kann, würde ich die Dateien gerne so gestalten, das nur mein Programm diese öffnen kann. Ich könnte diese Datei also name.xtf nennen. Das Problem ist, die Endung sieht zwar unbekannt aus, lässt sich aber mittels editor.exe problemlos anzeigen.
Meinst du damit ein eigenes Dateiformat, Verschlüsselung oder möchtest du wirklich das es nicht möglich ist die Datei zu öffnen?
Anliegen 2: Ich habe bei google nach Möglichkeiten gesucht, Umlaute in der Konsole darzustellen. Es gab allerdings nie wirkliche Lösungen (die zum Teil fehlerhaft waren). Es sollte möglich sein mittels
C++:
std::cout << "\uxxxx";
Das ist so nicht möglich. Solche Escapesequenzen gibt es in C/C++ nicht. Wenn man allerdings die Dateien in dem richtigen Zeichensatz speichert, braucht man auch keine Escapesequenzen.

Allerdings verwendet die DOS Konsole eine Codepage (kann man mit chcp anzeigen/einstellen). Ich bezweifle allerdings, dass man Unicodezeichen in der Konsole verwenden kann. Du könntest natürlich selbst in der Konsole rumzeichnen, aber da könntest du gleich eine grafische Anwendung erstellen.
Anliegen 3:
Resultiert etwa aus anliegen 1. Ich habe ebenfalls längere Zeit gegoogelt und mich durch uralte Foren gewühlt. Ich würde gerne eine Datei öffnen, oder etwas in sie hinein schreiben. Ich bin bei der suche schon auf fgets gestoßen, aber ich habe leider keine Ahnung, bin relativ neu auf cpp.
Das du ernsthaft gesucht hast, nehme ich dir nicht ab. Zu diesem Thema gibt es unzählige Bücher (auch frei verfügbare), Tutorials und Beiträge hier im Forum. :google:

Ich würde dir raten dich erstmal mit den Grundlagen zu beschäftigen und das mit der Sprachunterstützung erstmal außen vor zu lassen.

Gruß
 
Hi

Zu allererst, ich habe ernsthaft gesucht, und schließlich ja auch etwas gefunden (2. Post von mir), vielleicht hast du das ja überlesen.
Ich kann ja Dateien mit (fast) jeder beliebigen Endung speichern. So schreibe ich etwas im Editor und speichere es unter text.txt, text.hwk, txt.satz, txt.wasauchimmer. Nur kann man diese Dateien immernoch mit dem Editor öffnen und verändern. Wie kann ich das Öffnen und Verändern umgehen? Hoffe mein Anliegen ist nun deutlicher geworden.
Zu den Sonderzeichen: Ich werde dann doch auf Diphtonge wie ae,ue, oe ausweichen.
 
wenn du es nicht normal, sondern binaer speicherst, kannst du es nicht mit einem normalen texteditor oeffnen... das hat bei mir funktioniert. so war das (glaube ich)
 
Genau das meine ich. schonmal vonnem spiel oder so ne datei geoeffnet, wo fast nur diese weissen kaesten oder, irgendwelche fuer uns unentschluesselbaren zeichenfolgen drinstehen? So in der art wird es dann aussehen, glaube ich
 
Genau das meine ich. schonmal vonnem spiel oder so ne datei geoeffnet, wo fast nur diese weissen kaesten oder, irgendwelche fuer uns unentschluesselbaren zeichenfolgen drinstehen? So in der art wird es dann aussehen, glaube ich
Nicht wirklich. Text ist immer noch Text und kann im Klartext gelesen (und geändert) werden. Da muß man schon verschlüsseln. (wenigstens mit XOR)

Man könnte auch die Zugriffsrechte (bei einem entsprechenden Dateisystem) so setzen, das niemand per se zugreifen darf - außer das Programm welches unter einem dediziertem Account ausgeführt wird. Aber letztlich kann man immer an die Datei herankommen und sie öffnen und ändern. Es kommt auf den Aufwand an.

Gruß
 
Zurück