<?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[OLE - AnsiString -&amp;gt; Variant]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade per OLE Excel zu steuern, dies funktioniert auch einwandfrei.<br />
Ich übergebe meiner Anwendung einen Pfad und ein Kennwort. Die ist als AnsiString deklariert. Für die übergabe an Excel (Workbooks.Open) gebe ich dies mit. Ich erhalte dann allerdings die Fehlermeldung das die Typen nicht kompatibel sind. Sobald ich die Wert festlege (siehe Auskommierung) funkt. es einwandfrei.<br />
Wie kann ich meinen AnsiString in ein Variant umwandeln?</p>
<pre><code class="language-cpp">Variant vFileName, vWDocuments, vWDocument, vReadOnly, vLink, vFormat, vReadPass;
AnsiString strOpenFile, strPasswort;

   vFileName = Variant(strOpenFile);

// vFileName = &quot;c:\\test2.xls&quot;;
   vLink = Unassigned;
   vReadOnly = false;
   vFormat = Unassigned;
// vReadPass = strPasswort;
   vReadPass = &quot;test&quot;;
   wbSet.OleFunction(&quot;Open&quot;, vFileName, vLink, vReadOnly, vFormat, vReadPass);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/114739/ole-ansistring-gt-variant</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 00:43:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/114739.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Jul 2005 08:48:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 08:48:20 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade per OLE Excel zu steuern, dies funktioniert auch einwandfrei.<br />
Ich übergebe meiner Anwendung einen Pfad und ein Kennwort. Die ist als AnsiString deklariert. Für die übergabe an Excel (Workbooks.Open) gebe ich dies mit. Ich erhalte dann allerdings die Fehlermeldung das die Typen nicht kompatibel sind. Sobald ich die Wert festlege (siehe Auskommierung) funkt. es einwandfrei.<br />
Wie kann ich meinen AnsiString in ein Variant umwandeln?</p>
<pre><code class="language-cpp">Variant vFileName, vWDocuments, vWDocument, vReadOnly, vLink, vFormat, vReadPass;
AnsiString strOpenFile, strPasswort;

   vFileName = Variant(strOpenFile);

// vFileName = &quot;c:\\test2.xls&quot;;
   vLink = Unassigned;
   vReadOnly = false;
   vFormat = Unassigned;
// vReadPass = strPasswort;
   vReadPass = &quot;test&quot;;
   wbSet.OleFunction(&quot;Open&quot;, vFileName, vLink, vReadOnly, vFormat, vReadPass);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/825704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825704</guid><dc:creator><![CDATA[bcb67]]></dc:creator><pubDate>Thu, 07 Jul 2005 08:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 08:57:17 GMT]]></title><description><![CDATA[<p>Wie wäre es mit einer Fehlermeldung?! Woher sollen wir sosnt wissen welcher Fehler aufgetreten ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825712</guid><dc:creator><![CDATA[Clip]]></dc:creator><pubDate>Thu, 07 Jul 2005 08:57:17 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 08:58:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du hast da mehrere Varianten. Du kannst deinen AnsiString in ein Variant casten.<br />
Also</p>
<pre><code class="language-cpp">wbSet.OleFunction(&quot;Open&quot;, (Variant) vFileName, ...
</code></pre>
<p>Das funktioniert zwar, ist mir persönlich aber etwas supekt. Die andere Variante ist mit Hilfe von AnsiString::c_str() einen const char* draus zu machen.<br />
Also</p>
<pre><code class="language-cpp">wbSet.OleFunction(&quot;Open&quot;, vFileName.c_str(), ...
</code></pre>
<p>Das geht auch.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825714</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 07 Jul 2005 08:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 09:18:37 GMT]]></title><description><![CDATA[<p>Die Variante mit dem const char* funktioniert, meiner Erfahrung nach, zuverlässiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825739</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 Jul 2005 09:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 09:22:25 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe bei vorgeschlagenen Lösungen getestet. Allerdings mit keinem positivem Ergebnis.</p>
<p>Wenn ich dem</p>
<pre><code class="language-cpp">Variant vFileName = &quot;c:\\test2.xls&quot;;
</code></pre>
<p>den Wert so zuweise lädt er die Datei. Übergebe ich allerdings den<br />
AnsiString</p>
<pre><code class="language-cpp">Variant vFileName = strOpenFile;
</code></pre>
<p>Meldet sich die Anwendung mit &quot;Ausnahmefehler aufgetreten&quot;<br />
Auch das Cast (Variant) oder .c_str() enden auf dem o.g. Fehler.</p>
<p>Gibt es keine andere Möglichkeit einen AnsiString in ein Variant umzuwandeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825744</guid><dc:creator><![CDATA[bcb67]]></dc:creator><pubDate>Thu, 07 Jul 2005 09:22:25 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 09:23:33 GMT]]></title><description><![CDATA[<p>Es müßte auch noch folgendes gehen</p>
<pre><code class="language-cpp">wbSet.OleFunction(&quot;Open&quot;, Variant(vFileName), ...
</code></pre>
<p>da der Konstruktor von Variant für AnsiString überladen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825745</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 07 Jul 2005 09:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 09:30:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich habe in einen meiner alten Projekte das gefunden</p>
<pre><code class="language-cpp">WordApplication1-&gt;Documents-&gt;Open(OleVariant(StringToOleStr(AppPath + &quot;test.doc&quot;)),
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825749</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 07 Jul 2005 09:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 09:31:11 GMT]]></title><description><![CDATA[<p>Den Ansatz habe ich bereits gehabt. Dabei läuft das ganze auf die Fehlermeldung:<br />
Falscher Variablentyp.</p>
<pre><code class="language-cpp">wbSet.OleFunction(&quot;Open&quot;, Variant(vFileName), ...
</code></pre>
<p>Wie genau ist der Ansatz mit dem const char* ? Wie meinst ihr das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825750</guid><dc:creator><![CDATA[bcb67]]></dc:creator><pubDate>Thu, 07 Jul 2005 09:31:11 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 09:39:34 GMT]]></title><description><![CDATA[<p>Das hier ist gemeint:</p>
<p>Braunstein schrieb:</p>
<blockquote>
<pre><code class="language-cpp">wbSet.OleFunction(&quot;Open&quot;, vFileName.c_str(), ...
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/825755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825755</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 Jul 2005 09:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to OLE - AnsiString -&amp;gt; Variant on Thu, 07 Jul 2005 10:59:50 GMT]]></title><description><![CDATA[<p>Wobei ich da was verwechselt habe. vFileName ist bei dir ja ein Variant. Es muß also hier rein</p>
<pre><code class="language-cpp">vFileName = Variant(strOpenFile.c_str());
</code></pre>
<p>Man könnte das auch so machen</p>
<pre><code class="language-cpp">wbSet.OleFunction(&quot;Open&quot;, strOpenFile.c_str(), ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/825805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825805</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 07 Jul 2005 10:59:50 GMT</pubDate></item></channel></rss>