<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE]]]></title><description><![CDATA[<p>Ich habe ein paar Fragen.</p>
<p>1.) Wie kann ich die gesamte Dateigröße herausfinden? Ich bekomme da ja einen Low-Order-Anteil und einen High-Order-Anteil, wie muss ich diese beiden DWORDs kombinieren, so dass ich ein QUADWORD habe und die Zahl habe die ich bei new als Größe angeben muss?</p>
<p>2.) Wenn ich in meinem RichEdit-Feld TAB drücke wird kein Tabulator eingefügt sondern der gesamte Text markiert - warum das? Und wie verhindere ich das?</p>
<p>3.) Mein gesamtes Programm ist UNICODE-Kompatibel, alle Strings vom Typ basic_string&lt;TCHAR&gt; oder TCHAR, alle konstanten Strings mit TEXT() umklammert. Trotzdem habe ich ein Problem bei der Ausführung wenn ich mit &quot;UNICODE,_UNICODE&quot; kompiliere. Ich sehe dann statt der eigentlichen Zeichen chinesische Zeichen - nicht meine Absicht.</p>
<p>Ich denke das Problem liegt an ReadFile()/WriteFile() da beide die Anzahl der Bytes übernehmen die ausgelesen werden sollen und beide byteweise auslesen - will aber, dass der TCHAR-Weise ausliest. Wie kann ich ihm das beibringen?</p>
<p>Danke im voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/74157/fragen-filesize-tab-in-richedits-readfile-mit-unicode</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 13:50:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/74157.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 May 2004 19:03:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 19:03:06 GMT]]></title><description><![CDATA[<p>Ich habe ein paar Fragen.</p>
<p>1.) Wie kann ich die gesamte Dateigröße herausfinden? Ich bekomme da ja einen Low-Order-Anteil und einen High-Order-Anteil, wie muss ich diese beiden DWORDs kombinieren, so dass ich ein QUADWORD habe und die Zahl habe die ich bei new als Größe angeben muss?</p>
<p>2.) Wenn ich in meinem RichEdit-Feld TAB drücke wird kein Tabulator eingefügt sondern der gesamte Text markiert - warum das? Und wie verhindere ich das?</p>
<p>3.) Mein gesamtes Programm ist UNICODE-Kompatibel, alle Strings vom Typ basic_string&lt;TCHAR&gt; oder TCHAR, alle konstanten Strings mit TEXT() umklammert. Trotzdem habe ich ein Problem bei der Ausführung wenn ich mit &quot;UNICODE,_UNICODE&quot; kompiliere. Ich sehe dann statt der eigentlichen Zeichen chinesische Zeichen - nicht meine Absicht.</p>
<p>Ich denke das Problem liegt an ReadFile()/WriteFile() da beide die Anzahl der Bytes übernehmen die ausgelesen werden sollen und beide byteweise auslesen - will aber, dass der TCHAR-Weise ausliest. Wie kann ich ihm das beibringen?</p>
<p>Danke im voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522236</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 17 May 2004 19:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 19:21:54 GMT]]></title><description><![CDATA[<p>1. Nur wenn die Datei größer als 4 GB ist, brauchst du den High-Order DWORD, ansonsten nur den Return-Wert<br />
2. keine Ahnung<br />
3. sizeof(TCHAR) * lenght als Größe angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522254</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 17 May 2004 19:21:54 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 19:46:45 GMT]]></title><description><![CDATA[<p>1. Okay dann spar ich mir das erstmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>3. Hab ich, hab ich, trotzdem kommt folgendes heraus:</p>
<pre><code class="language-cpp">// open file
HANDLE hFile = CreateFile(FileInfo.CurFileWithPath.c_str(),GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

// Dateigröße berechnen (erübrigt sich jetzt auf FileSize=Get...)
DWORD FileSizeLow = 0, FileSizeHigh = 0;
FileSizeLow = GetFileSize(hFile,&amp;FileSizeHigh);

// Speicher allokieren
TCHAR* FileContent = new TCHAR [FileSizeLow+1];

// Dateiinhalt auslesen
DWORD NumberOf = 0;
ReadFile(hFile,FileContent,sizeof(TCHAR)*FileSizeLow,&amp;NumberOf,0);
FileContent[FileSizeLow] = 0;

// Dateiinhalt in einem std::string abspeichern [Nein hier liegt der Fehler sicher nicht, ihr WinAPI'ler könnt nicht alles auf die STL schieben ;)]
std::basic_string&lt;TCHAR&gt; FileContentAsString = FileContent;

// Allokierten Speicher freigeben
delete [] FileContent;

// Datei schließen	
CloseHandle(hFile);

return(FileContentAsString);
</code></pre>
<p>Was mache ich falsch? In FileContent steht nach dem Auslesen sofort an erster Stelle eine Zahl über 20K <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522279</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 17 May 2004 19:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:03:13 GMT]]></title><description><![CDATA[<p>Ist das überhaupt eine Unicode-Datei?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522289</guid><dc:creator><![CDATA[hmmm,]]></dc:creator><pubDate>Mon, 17 May 2004 20:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:05:07 GMT]]></title><description><![CDATA[<p>Zum einen allokierst du bei Unicode zu viel Speicher, da GetFileSize ja die Bytes zurückliefert. Außerdem weißt du ja im Voraus nicht, ob es sich bei der Text-Datei überhaupt um Unicode handelt (hat ja nichts mit dem Kompilieren zu tun <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )<br />
Am Besten allokierst du erstmal ganz normal einen char-Buffer (das +1 sollte eigentlich auch überflüssig sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ), anschließend checkst du mit <a href="http://msdn.microsoft.com/library/en-us/intl/unicode_81np.asp" rel="nofollow">IsTextUnicode</a>, ob es Unicode ist oder nicht. Dann ggf. entsprechend umwandeln wenn du willst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/522292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522292</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 17 May 2004 20:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:06:32 GMT]]></title><description><![CDATA[<p>Nein es ist eine ganz normale *.txt-Datei erstellt mit dem Editor.</p>
<p>Edit: Wie umwandeln? Genau das will ich wissen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Und wer Antwort auf 2 hat bitte ebenfalls melden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522293</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 17 May 2004 20:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:15:23 GMT]]></title><description><![CDATA[<p>Die Funktionen siehst du doch alle in der MSDN-Library - <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_19mb.asp" rel="nofollow">hier</a><br />
Ich denke, du brauchst <a href="http://msdn.microsoft.com/library/en-us/intl/unicode_17si.asp" rel="nofollow">MultiByteToWideChar</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/522307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522307</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 17 May 2004 20:15:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:22:20 GMT]]></title><description><![CDATA[<p>Danke, habe die Funktion schon entdeckt aber nicht genauer betrachtet da ja MultiByte-Strings wieder etwas anderes sind und ich nicht gewusst habe, dass ich per Flag auch ANSI-Strings als Quelle einstellen kann.</p>
<p>Also es funktioniert nun wieder. Bloß was tun wenn ich bereits einen TCHAR* ausgelesen habe? Also eigentlich jeweils 2 char* zusammengehören? Sowas tun:</p>
<pre><code class="language-cpp">// Mit char* FileContentA Datei auslesen
...

// Hier nochmal TCHAR* FileContentW anlegen mit Größe == FileSize
...

if(IsTextUnicode(...))
{
    // was hier?
    // doch nicht sowas?:
    FileContentW = FileContentA; // casten, jaja...
    FileSize /= 2;
}
else
{
    MultiByte...
}

std::basic_string&lt;TCHAR&gt; Text = FileContentW;
delete [] FileContentW;
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522319</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 17 May 2004 20:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:31:15 GMT]]></title><description><![CDATA[<p>Wenn du schon Unicode ausgelesen hast sollte eigentlich ein cast reichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/522329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522329</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 17 May 2004 20:31:15 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:33:15 GMT]]></title><description><![CDATA[<p>zu 2.) Vielleicht hat das was mit WS_TABSTOP und WS_GROUP zu tun <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/522334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522334</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 17 May 2004 20:33:15 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:34:16 GMT]]></title><description><![CDATA[<p>Funktioniert nicht, gibt mir nur das erste Zeichen in der RichText-Box aus, arbeitet die etwa wieder intern mit char* und liest das 'A' und dann eine 0?</p>
<p>Kann ja nicht sein, imho hat sie schon chinesische Zeichen ausgegeben...</p>
<p>Also das was ich eben zusammengecasted habe funktioniert nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522335</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 17 May 2004 20:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Mon, 17 May 2004 20:41:44 GMT]]></title><description><![CDATA[<p>Hast du denn dein Programm jetzt mit Unicode-Unterstützung kompiliert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522344</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 17 May 2004 20:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Tue, 18 May 2004 17:09:19 GMT]]></title><description><![CDATA[<p>Es funktioniert nun, keine Ahnung warum. Hab die Funktion nochmals neu geschrieben und nun gehts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>@Frage3: Hmm mal sehen, aber irgendwie müsste das doch eine Option beim Erstellen sein, imho markiert kein einziges Textfeld das ich jemals gesehen habe den gesamten Text der in ihr steht sondern gibt entweder dem nächsten Objekt den Fokus oder erstellt 4/8 Leerzeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Naja ich werds weiter versuchen.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/522870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522870</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Tue, 18 May 2004 17:09:19 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Tue, 18 May 2004 19:25:32 GMT]]></title><description><![CDATA[<p>Hast du evtl. dort nur dieses eine Control sitzen? Dann könnte es nämlich sein, dass der Fokus wieder neu auf das Control gesetzt wird und dabei wird dann häufig der sich darin befindende Text markiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/522956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/522956</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 18 May 2004 19:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Tue, 18 May 2004 20:40:29 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Hast du evtl. dort nur dieses eine Control sitzen? Dann könnte es nämlich sein, dass der Fokus wieder neu auf das Control gesetzt wird und dabei wird dann häufig der sich darin befindende Text markiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Jop das ist wahr, wie stelle ich ein, dass das RichEdit nicht Ziel des Fokus-TabStops werden kann bzw. dass dieser Wechsel mit TabStop überhaupt nicht funktioniert für ein bestimmtes Fenster?</p>
<p>Wenn ich den Dialog als Resource mache kann ich das ja anhaken und fertig, aber RichEdits muss ich ja mit CreateWindow() erstellen - wie nun? Den Style gibts nicht in der MSDN?!</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/523017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523017</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Tue, 18 May 2004 20:40:29 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen [FileSize, Tab in RichEdits, ReadFile mit UNICODE] on Tue, 18 May 2004 21:07:33 GMT]]></title><description><![CDATA[<p>Hast du da einfach den Haken bei Tabstop rausgenommen? Hast du den evtl. bei CreateWindow angegeben - evtl. mal explizit dieses Flag löschen (ist ja evtl bereit wo enthalten) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/523033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/523033</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 18 May 2004 21:07:33 GMT</pubDate></item></channel></rss>