<?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[Filenames aus dem Openfile Dialog auslesen]]></title><description><![CDATA[<p>Hi, ich habe ein Problem ich hab nen OpenFileDialog und dort möchte ich alle ausgewählten Items in eine ListBox eintragen (sozusagen ne for-schleife).</p>
<p>Nur weis ich nicht wie ich das innem Array speichern soll. Wäre nett wenn ihr mir helfen konntet:</p>
<pre><code class="language-cpp">void AddItem(HWND hwnd, HINSTANCE hInstance, HWND ListHWND)
{
	char szFileName[MAX_PATH];

	OPENFILENAME ofn;

	ZeroMemory(&amp;ofn, sizeof(ofn));
	szFileName[0] = 0;
	FileTitle[0] = 0;
	ofn.lStructSize = sizeof(ofn);
	ofn.hwndOwner = hwnd;
	ofn.lpstrFile = szFileName;
	ofn.lpstrTitle = &quot;Dateien auswählen&quot;;
	ofn.lpstrFilter = &quot;Alle Dateien (*.*)\0*.*&quot;;
	ofn.nMaxFile = MAX_PATH;
	ofn.lpstrDefExt = &quot;*.*&quot;;
	ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT; 
	if(GetOpenFileName(&amp;ofn))
	{
		GetFileTitle(szFileName, FileTitle, sizeof(FileTitle));
		SendMessage(ListHWND,LB_ADDSTRING,0,(WPARAM)FileTitle);
		ListBoxItems++;
	}
}
void Save()
{
	if(ListBoxItems != 0)
	{
		/*
		std::ofstream output(&quot;files.txt&quot;);
		output.write((char*)FileTitle, sizeof(FileTitle));
		output.close();*/
	}
	else
		MessageBox(hwnd, &quot;Es sind keine Einträge vorhanden!&quot;, &quot;Warnung&quot;, MB_OK | MB_ICONWARNING);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/196155/filenames-aus-dem-openfile-dialog-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 01:41:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196155.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Oct 2007 06:16:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Fri, 26 Oct 2007 06:16:06 GMT]]></title><description><![CDATA[<p>Hi, ich habe ein Problem ich hab nen OpenFileDialog und dort möchte ich alle ausgewählten Items in eine ListBox eintragen (sozusagen ne for-schleife).</p>
<p>Nur weis ich nicht wie ich das innem Array speichern soll. Wäre nett wenn ihr mir helfen konntet:</p>
<pre><code class="language-cpp">void AddItem(HWND hwnd, HINSTANCE hInstance, HWND ListHWND)
{
	char szFileName[MAX_PATH];

	OPENFILENAME ofn;

	ZeroMemory(&amp;ofn, sizeof(ofn));
	szFileName[0] = 0;
	FileTitle[0] = 0;
	ofn.lStructSize = sizeof(ofn);
	ofn.hwndOwner = hwnd;
	ofn.lpstrFile = szFileName;
	ofn.lpstrTitle = &quot;Dateien auswählen&quot;;
	ofn.lpstrFilter = &quot;Alle Dateien (*.*)\0*.*&quot;;
	ofn.nMaxFile = MAX_PATH;
	ofn.lpstrDefExt = &quot;*.*&quot;;
	ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT; 
	if(GetOpenFileName(&amp;ofn))
	{
		GetFileTitle(szFileName, FileTitle, sizeof(FileTitle));
		SendMessage(ListHWND,LB_ADDSTRING,0,(WPARAM)FileTitle);
		ListBoxItems++;
	}
}
void Save()
{
	if(ListBoxItems != 0)
	{
		/*
		std::ofstream output(&quot;files.txt&quot;);
		output.write((char*)FileTitle, sizeof(FileTitle));
		output.close();*/
	}
	else
		MessageBox(hwnd, &quot;Es sind keine Einträge vorhanden!&quot;, &quot;Warnung&quot;, MB_OK | MB_ICONWARNING);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1392270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392270</guid><dc:creator><![CDATA[Nolf]]></dc:creator><pubDate>Fri, 26 Oct 2007 06:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Fri, 26 Oct 2007 06:32:24 GMT]]></title><description><![CDATA[<p>Wo hast du denn die Variable &quot;FileTitle&quot; angelegt? Regulär trägt der Dialog in lpstrFile den/die Namen (samt Pfad) der gewählten Datei(en) ein - bei Mehrfachauswahl durch '\0' getrennt:</p>
<pre><code class="language-cpp">for(char* fname = szFileName+ofn.nFileOffset;*fname!='\0';fname+=strlen(fname)+1)
  mach was
</code></pre>
<p>(aber das hätte dir auch ein tieferer Blick in die MSDN Erklären können)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392274</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 26 Oct 2007 06:32:24 GMT</pubDate></item><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Fri, 26 Oct 2007 06:57:20 GMT]]></title><description><![CDATA[<p>Die hab ich Global erstellt.</p>
<p>Ich hab die MSDN aufm PC und hab mich da ein bissn totgesucht aber egal. Ich schau zuerst immer in die MSDN. Aber um genau zu wissen wonach ich suche, muss ich das auch erstmal lernen.</p>
<p>Thx für deine Hilfe hat mir echt geholfen.</p>
<p>Jetz stellt sich für mich noch die Frage, wie ich ne for Schleife schreiben muss, damit er PRO Listeintrag den Inhalt in die Datei schreibt. Vllt kannste mir da noch helfen.</p>
<pre><code class="language-cpp">for(int i=0; i&lt;ListBoxItems; i++)
{
char CurrentFile[256];

//Hier der Code

std::ofstream output(&quot;files.txt&quot;);
output.write((char*)CurrentFile, sizeof(CurrentFile));
output.close();
}
</code></pre>
<p>€dit: Listboxitems ist eine bereits Global deklarierte Variable (Global nur zum Testzweck, vllt gehts auch anders)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392282</guid><dc:creator><![CDATA[Nolf]]></dc:creator><pubDate>Fri, 26 Oct 2007 06:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Fri, 26 Oct 2007 07:26:44 GMT]]></title><description><![CDATA[<p>Nolf schrieb:</p>
<blockquote>
<p>Ich hab die MSDN aufm PC und hab mich da ein bissn totgesucht aber egal. Ich schau zuerst immer in die MSDN. Aber um genau zu wissen wonach ich suche, muss ich das auch erstmal lernen.</p>
</blockquote>
<p>Also wenn ich in der MSDN nach OPENFILENAME suche, bekomme ich eine recht ausführliche Beschreibung der einzelnen ofn-Member und wie GetOpenFileName() mit ihnen interagiert <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>
<blockquote>
<p>Jetz stellt sich für mich noch die Frage, wie ich ne for Schleife schreiben muss, damit er PRO Listeintrag den Inhalt in die Datei schreibt. Vllt kannste mir da noch helfen.</p>
</blockquote>
<p>So wie ich es dort oben geschrieben habe - anstelle des 'mach was' mußt du halt den entsprechenden Dateinamen nehmen und verarbeiten.</p>
<p>Zur Erklärung - die Dateinamen stehen etwa so in deinem Array:</p>
<pre><code>C:\Testdir\file1.txt#file2.txt#file3.txt##
           ^
</code></pre>
<p>(# steht dabei für das '\0', das als Trennzeichen verwendet wird)<br />
Außerdem steht in nFileOffset der Index, an dem der Dateipfad zu Ende ist und der Dateiname beginnt (dort oben mit ^ markiert).</p>
<p>Die for()-Schleife beginnt beim ersten Dateinamen der Liste - in jeder Runde springt der Zeiger auf den Anfang des nächsten Dateinamens (str+strlen(str) zeigt auf den '\0'-Terminator von str, str+strlen(str)+1 auf das Zeichen dahinter - also den nächsten String der Liste).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392298</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 26 Oct 2007 07:26:44 GMT</pubDate></item><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Wed, 31 Oct 2007 20:02:41 GMT]]></title><description><![CDATA[<p>Ja aber so kompliziert brauch ich es doch nicht. Wie siehts aus, wenn ich ne forschleife laufen lasse, die alle ListBox Items durchgeht und speichert nur leider gibt es nicht soetwas wie ne Message wie:</p>
<p>WM_GETLISTBOXITEMS oder ähnlich.</p>
<p>Dies in einer Variable zu speichern erscheind mir etwas verwirrend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395579</guid><dc:creator><![CDATA[Nolf-re]]></dc:creator><pubDate>Wed, 31 Oct 2007 20:02:41 GMT</pubDate></item><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Fri, 02 Nov 2007 09:27:05 GMT]]></title><description><![CDATA[<p>Nein, aber es gibt LB_GETITEMDATA <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="😉"
    /> (reicht das für deine Zwecke?)</p>
<p>btw - die ListBox mußt du trotzdem noch füllen, bevor du sie verwenden kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396259</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 02 Nov 2007 09:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Filenames aus dem Openfile Dialog auslesen on Tue, 06 Nov 2007 14:11:21 GMT]]></title><description><![CDATA[<p>Jau genau aber die Listbox ist schon gefüllt aber LB_GETITEMDATA ist sicher das richtige.</p>
<p>thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398675</guid><dc:creator><![CDATA[NolfRE]]></dc:creator><pubDate>Tue, 06 Nov 2007 14:11:21 GMT</pubDate></item></channel></rss>