<?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[binäre datei in ascii wandeln und wieder zurück]]></title><description><![CDATA[<p>Hallo liebe C++ler,</p>
<p>Einleitung:</p>
<p>Wir betreiben in unserem gemeinnützigen Verein knappe 185 Router, um die Haushalte mit DSL per Funk zu versorgen. Das läuft seit Jahren perfekt. Nun müssen wir demnächst an der Konfiguration einige Parameter ändern. Also per http in den Router einlogen, Änderungen machen, speichern - nächster Router. Da hat man Wochen zu tun, weil schon durch die IP Adressen jeder Router anders konfiguriert ist. Daher die Idee, die Konfigurationsdatei offline zu erzeugen und dann nur noch per Restore Funktion des Routers hochzuladen. Die Konfigurationsdatei ist eine binäre Datei, in der jeweils einer Variablen ein Wert zugeordnet ist. Ich muß nun ein Programm schreiben, was eine vorgefertigte binäre Datei in eine ASCII Datei umwandelt. In der ASCII Datei möchte ich dann z.B. IP Adresse, Username, Passwort u.s.w. per PHP Script aus einer MySQL Datenbank ersetzen. Ich habe dann für jeden Router eine ASCII Konfigurationsdatei. Nun muß jede Datei wieder in das Binärformat umgewandelt werden. Ich habe einen Rechner mit Debian 6.0.6 (32 Bit) mit Development Tools und Libraries zur Verfügung, auf welchem ich das C++ Programm laufen lassen möchte.</p>
<p>Aufgabe:</p>
<p>Die binäre Default Datei befindet sich hier: <a href="https://www.dropbox.com/s/6qurhw091194cas/defaults.bin" rel="nofollow">https://www.dropbox.com/s/6qurhw091194cas/defaults.bin</a></p>
<p>Das ist hier mein erster Versuch, die binäre Datei zu lesen:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;iterator&gt;

using namespace std;
ifstream FileIn(&quot;defaults.bin&quot;);

if (FileIn)     // Falls FileIn existiert
{
    vector&lt;string&gt; Contents;              // Container f. einzelnen Zeilen

    // Solange kein Fehler auftritt und nicht eof
    for (string ReadString; getline(FileIn, ReadString); )
        Contents.push_back(ReadString);   // Aktuelle Zeile in den Vektor einfuegen
    // Alle Elemente des Vektors ausgeben.
    ostream_iterator&lt;string&gt; Out(cout, &quot;\n&quot;);
    copy(Contents.begin(), Contents.end(), Out);
}
</code></pre>
<p>leider mit dem Ergebnis:</p>
<pre><code># g++ -o decode decode.c 
decode.c:12: error: expected unqualified-id before 'if'
</code></pre>
<p>Aufgeben kommt nicht in Frage. Wie kann ich zum Ziel gelangen?<br />
Ich brauche ja nur zwei Programme: bin2ascii und ascii2bin</p>
<p>lg<br />
Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311987/binäre-datei-in-ascii-wandeln-und-wieder-zurück</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 05:37:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311987.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Dec 2012 12:45:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to binäre datei in ascii wandeln und wieder zurück on Thu, 20 Dec 2012 12:45:57 GMT]]></title><description><![CDATA[<p>Hallo liebe C++ler,</p>
<p>Einleitung:</p>
<p>Wir betreiben in unserem gemeinnützigen Verein knappe 185 Router, um die Haushalte mit DSL per Funk zu versorgen. Das läuft seit Jahren perfekt. Nun müssen wir demnächst an der Konfiguration einige Parameter ändern. Also per http in den Router einlogen, Änderungen machen, speichern - nächster Router. Da hat man Wochen zu tun, weil schon durch die IP Adressen jeder Router anders konfiguriert ist. Daher die Idee, die Konfigurationsdatei offline zu erzeugen und dann nur noch per Restore Funktion des Routers hochzuladen. Die Konfigurationsdatei ist eine binäre Datei, in der jeweils einer Variablen ein Wert zugeordnet ist. Ich muß nun ein Programm schreiben, was eine vorgefertigte binäre Datei in eine ASCII Datei umwandelt. In der ASCII Datei möchte ich dann z.B. IP Adresse, Username, Passwort u.s.w. per PHP Script aus einer MySQL Datenbank ersetzen. Ich habe dann für jeden Router eine ASCII Konfigurationsdatei. Nun muß jede Datei wieder in das Binärformat umgewandelt werden. Ich habe einen Rechner mit Debian 6.0.6 (32 Bit) mit Development Tools und Libraries zur Verfügung, auf welchem ich das C++ Programm laufen lassen möchte.</p>
<p>Aufgabe:</p>
<p>Die binäre Default Datei befindet sich hier: <a href="https://www.dropbox.com/s/6qurhw091194cas/defaults.bin" rel="nofollow">https://www.dropbox.com/s/6qurhw091194cas/defaults.bin</a></p>
<p>Das ist hier mein erster Versuch, die binäre Datei zu lesen:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;iterator&gt;

using namespace std;
ifstream FileIn(&quot;defaults.bin&quot;);

if (FileIn)     // Falls FileIn existiert
{
    vector&lt;string&gt; Contents;              // Container f. einzelnen Zeilen

    // Solange kein Fehler auftritt und nicht eof
    for (string ReadString; getline(FileIn, ReadString); )
        Contents.push_back(ReadString);   // Aktuelle Zeile in den Vektor einfuegen
    // Alle Elemente des Vektors ausgeben.
    ostream_iterator&lt;string&gt; Out(cout, &quot;\n&quot;);
    copy(Contents.begin(), Contents.end(), Out);
}
</code></pre>
<p>leider mit dem Ergebnis:</p>
<pre><code># g++ -o decode decode.c 
decode.c:12: error: expected unqualified-id before 'if'
</code></pre>
<p>Aufgeben kommt nicht in Frage. Wie kann ich zum Ziel gelangen?<br />
Ich brauche ja nur zwei Programme: bin2ascii und ascii2bin</p>
<p>lg<br />
Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2281915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2281915</guid><dc:creator><![CDATA[digidax]]></dc:creator><pubDate>Thu, 20 Dec 2012 12:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to binäre datei in ascii wandeln und wieder zurück on Thu, 20 Dec 2012 12:49:19 GMT]]></title><description><![CDATA[<p>Dann lerne erstmal (was haben wir hier?, ah) C++.</p>
<p>Weißt du was main ist (bei C/C++)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2281917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2281917</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 20 Dec 2012 12:49:19 GMT</pubDate></item><item><title><![CDATA[Reply to binäre datei in ascii wandeln und wieder zurück on Thu, 20 Dec 2012 12:49:36 GMT]]></title><description><![CDATA[<p>Wo ist die Spezifikation für <em>dieses</em> Binärformat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2281918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2281918</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 20 Dec 2012 12:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to binäre datei in ascii wandeln und wieder zurück on Thu, 20 Dec 2012 12:51:50 GMT]]></title><description><![CDATA[<p>Es geht wohl schneller die Router per Hand zu konfigurieren, als dass das Programm fehlerfrei läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2281921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2281921</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 20 Dec 2012 12:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to binäre datei in ascii wandeln und wieder zurück on Thu, 20 Dec 2012 13:22:10 GMT]]></title><description><![CDATA[<p>Okay, stimmt. Main-Funktion fehlt.</p>
<p>Habe hier <a href="https://www.dropbox.com/s/80b8veo3aobi4vd/defaults.c" rel="nofollow">https://www.dropbox.com/s/80b8veo3aobi4vd/defaults.c</a> den originalen C-Quellcode, der die defaults.bin liest. Die Funktion dazu befindet sich am Ende der Datei (Zeile 2879). Davor sind die Parameter.</p>
<p>Ggf. würde es auch genügen, wenn ich ein Programm bastel, was die defaults.c includiert und ich dann dem Programm z.B. 'make_config' nur die zu überschreibenden Variablen und Werte (-p) übergebe:</p>
<pre><code># ./make_config -o config.bin -p lan_ipaddr=192.168.10.25 wan_dns=8.8.8.8
</code></pre>
<p>-o wäre dann der Name der fertigen Konfigdatei.</p>
<p>lg<br />
Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2281927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2281927</guid><dc:creator><![CDATA[digidax]]></dc:creator><pubDate>Thu, 20 Dec 2012 13:22:10 GMT</pubDate></item></channel></rss>