<?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[Brauche Denkanstoß zum Thema Variablenzugriff]]></title><description><![CDATA[<p>Hi,</p>
<p>ich trette im Moment auf der Stelle und habe keine passende Idee zu folgendem Thema. Das Programm liest und analysiert eine binäre Datei. In meiner Hauptschleife wird Byte für Byte analysiert und dann entsprechende Funktionen und Unterfunktionen aufgerufen die ebenfalls wieder einzelne Bytes aus der Datei lesen. Das Lesen der Bytes wird über die Funktion getByte(...) gemacht, die einen Buffer aus der Datei liest und einzelne Bytes davon zurück gibt. In dieser getByte() Funktion habe ich einen Byte-Zähler integriert, um bei einem gefundenen Syntax-Problem genau zu wissen an welcher Stelle in der Datei ein Problem existiert.</p>
<p>Nun zu meinem Problem. Ich kann den Byte-Zähler und den Datei-Pointer global anlegen (was ja nicht so gut ist) oder bei jedem Aufruf einen Pointer auf den Byte-Zähler und die Datei in getByte(pCounter, pFile) übergeben. Nur, getByte() wird in der Hauptschleife und in mehreren Funktionen aufgerufen, d.h. ich muss über mehrere Funktionen die Pointer durchreichen. Ich gehe mal davon aus, dass das etwas umständlich ist, aber mir fehlt da eine Idee dazu das in C++ besser zu machen.</p>
<p>Wie würdet ihr so was programmieren ?</p>
<pre><code class="language-cpp">// Hauptschleife
while( !EndOfFile )
  {
   int x = getByte(...);
   switch( x )
     {
      case 0x10: F1(...);
                 break;
      case 0x20: F2(...);
                 break;
      // ...
     }
  }

int F1(...)
{
 //...
 int y = getByte(...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/242555/brauche-denkanstoß-zum-thema-variablenzugriff</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 00:10:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242555.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Jun 2009 06:59:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brauche Denkanstoß zum Thema Variablenzugriff on Fri, 05 Jun 2009 06:59:53 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich trette im Moment auf der Stelle und habe keine passende Idee zu folgendem Thema. Das Programm liest und analysiert eine binäre Datei. In meiner Hauptschleife wird Byte für Byte analysiert und dann entsprechende Funktionen und Unterfunktionen aufgerufen die ebenfalls wieder einzelne Bytes aus der Datei lesen. Das Lesen der Bytes wird über die Funktion getByte(...) gemacht, die einen Buffer aus der Datei liest und einzelne Bytes davon zurück gibt. In dieser getByte() Funktion habe ich einen Byte-Zähler integriert, um bei einem gefundenen Syntax-Problem genau zu wissen an welcher Stelle in der Datei ein Problem existiert.</p>
<p>Nun zu meinem Problem. Ich kann den Byte-Zähler und den Datei-Pointer global anlegen (was ja nicht so gut ist) oder bei jedem Aufruf einen Pointer auf den Byte-Zähler und die Datei in getByte(pCounter, pFile) übergeben. Nur, getByte() wird in der Hauptschleife und in mehreren Funktionen aufgerufen, d.h. ich muss über mehrere Funktionen die Pointer durchreichen. Ich gehe mal davon aus, dass das etwas umständlich ist, aber mir fehlt da eine Idee dazu das in C++ besser zu machen.</p>
<p>Wie würdet ihr so was programmieren ?</p>
<pre><code class="language-cpp">// Hauptschleife
while( !EndOfFile )
  {
   int x = getByte(...);
   switch( x )
     {
      case 0x10: F1(...);
                 break;
      case 0x20: F2(...);
                 break;
      // ...
     }
  }

int F1(...)
{
 //...
 int y = getByte(...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1721536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721536</guid><dc:creator><![CDATA[C++ Learner]]></dc:creator><pubDate>Fri, 05 Jun 2009 06:59:53 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Denkanstoß zum Thema Variablenzugriff on Fri, 05 Jun 2009 07:16:52 GMT]]></title><description><![CDATA[<p>Ich würde getByte, das Filehandle und diesen Zähler zusammen in eine Klasse packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721541</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 05 Jun 2009 07:16:52 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Denkanstoß zum Thema Variablenzugriff on Fri, 05 Jun 2009 07:28:43 GMT]]></title><description><![CDATA[<p>Und den Zähler und Filehandle dann als public anlegen ?</p>
<p>Bashar schrieb:</p>
<blockquote>
<p>Ich würde getByte, das Filehandle und diesen Zähler zusammen in eine Klasse packen.</p>
</blockquote>
<p>Und den Zähler und Filehandle dann als public anlegen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721549</guid><dc:creator><![CDATA[C++ Learner]]></dc:creator><pubDate>Fri, 05 Jun 2009 07:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Denkanstoß zum Thema Variablenzugriff on Fri, 05 Jun 2009 08:20:23 GMT]]></title><description><![CDATA[<p>Nein, auf keinen Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721567</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 05 Jun 2009 08:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Denkanstoß zum Thema Variablenzugriff on Fri, 05 Jun 2009 09:50:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">enum EIOPos
{
    eIOBeg = 0,
    eIOEnd,
    eIOCur,
};

class IIO // Input-/Outputinterface
{
    private:
    size_t    offset;
    size_t    size;

    public:
        IIO(){}
        ~IIO(){}

    virtual char* read( size_t size ) = 0; // wahlweise auch std::queue&lt;char&gt; o. std::string
    virtual void write( char* bytes, size_t size ) = 0;
    virtual void move( size_t offset, EIOPos pos ) = 0;
    virtual bool is_open( void ) = 0;
    virtual void clear( void ) = 0;
    virtual size_t size( void ) = 0;

    .....
} /* class IIO */;

class CFile : public IIO
{
    ..
} /* class CFile */;
</code></pre>
<p>Is jetzt natürlich nix genaues und nicht sehr überlegt, aber so in der Art würde ich es schreiben (jedenfalls hier, ich bin da etwas schludgriger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721633</guid><dc:creator><![CDATA[~ferAL]]></dc:creator><pubDate>Fri, 05 Jun 2009 09:50:10 GMT</pubDate></item></channel></rss>