<?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[byteweise schreiben.]]></title><description><![CDATA[<p>hallo, ich habe ein problem. hoffe ihr könnt mir gescheit weiterhelfen. also ich habe ein struct:</p>
<pre><code class="language-cpp">typedef struct TCORR_POINT
  {
  unsigned int DFFt_REG_VAL;
  char Intens; 
  char großscan; 
  char Facet_skin; 
  char Not_Used; 

  }TCORR;

typedef struct TFACET
  {
  TCORR CorrSkin[1024]; 
  }TFACET;

typedef struct TCORRECTIONTABLE
  {
  TFACET FaccetNum[16]; 

  }TCORRECTIONTABLE;
</code></pre>
<p>so. die daten aus diesem struct werden gefüllt mit einer schleife:</p>
<pre><code class="language-cpp">TCORRECTIONTABLE CorrectionTable;

  for(int j = 0; j &lt; 1023; j++)
  {
    for(int x = 0; x &lt; 15; x++)
    {
      CorrectionTable.FaccetNum[x].CorrSkin[j].DFFt_REG_VAL = FDD_scenter;
      CorrectionTable.FaccetNum[x].CorrSkin[j].Intens = 127;
      CorrectionTable.FaccetNum[x].CorrSkin[j].großscan= 127;
      CorrectionTable.FaccetNum[x].CorrSkin[j].Facet_skin = 0;
      CorrectionTable.FaccetNum[x].CorrSkin[j].Not_Used = 0;
    }
  }
</code></pre>
<p>danach soll das struct byteweise in eine datei geschrieben werden:</p>
<pre><code class="language-cpp">char byteptr;

  int i;

  FILE *datei;

  datei = fopen(FileName_end,&quot;a&quot;);

  fseek(datei, 0L,SEEK_SET);

  byteptr = &amp;CorrectionTable;

  for(i = 0; i &lt; MEMDUMPSIZE-1 ; i++)
  {
    fprintf(datei, &quot;%d&quot;, byteptr);
  }

  fclose(datei);
</code></pre>
<p>der fehler liegt darin das er mir sagt das er ein problem beim kovertieren an der stelle hat wo er den inhalt in den bytepointer schreiben will, was ja eigentlich logisch ist.</p>
<p>ich weiss jedoch nicht wie ich das am besten lösen könnte.</p>
<p>habt ihr einen tipp fuer mich ???</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/141456/byteweise-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 13:20:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141456.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Mar 2006 09:32:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 09:32:38 GMT]]></title><description><![CDATA[<p>hallo, ich habe ein problem. hoffe ihr könnt mir gescheit weiterhelfen. also ich habe ein struct:</p>
<pre><code class="language-cpp">typedef struct TCORR_POINT
  {
  unsigned int DFFt_REG_VAL;
  char Intens; 
  char großscan; 
  char Facet_skin; 
  char Not_Used; 

  }TCORR;

typedef struct TFACET
  {
  TCORR CorrSkin[1024]; 
  }TFACET;

typedef struct TCORRECTIONTABLE
  {
  TFACET FaccetNum[16]; 

  }TCORRECTIONTABLE;
</code></pre>
<p>so. die daten aus diesem struct werden gefüllt mit einer schleife:</p>
<pre><code class="language-cpp">TCORRECTIONTABLE CorrectionTable;

  for(int j = 0; j &lt; 1023; j++)
  {
    for(int x = 0; x &lt; 15; x++)
    {
      CorrectionTable.FaccetNum[x].CorrSkin[j].DFFt_REG_VAL = FDD_scenter;
      CorrectionTable.FaccetNum[x].CorrSkin[j].Intens = 127;
      CorrectionTable.FaccetNum[x].CorrSkin[j].großscan= 127;
      CorrectionTable.FaccetNum[x].CorrSkin[j].Facet_skin = 0;
      CorrectionTable.FaccetNum[x].CorrSkin[j].Not_Used = 0;
    }
  }
</code></pre>
<p>danach soll das struct byteweise in eine datei geschrieben werden:</p>
<pre><code class="language-cpp">char byteptr;

  int i;

  FILE *datei;

  datei = fopen(FileName_end,&quot;a&quot;);

  fseek(datei, 0L,SEEK_SET);

  byteptr = &amp;CorrectionTable;

  for(i = 0; i &lt; MEMDUMPSIZE-1 ; i++)
  {
    fprintf(datei, &quot;%d&quot;, byteptr);
  }

  fclose(datei);
</code></pre>
<p>der fehler liegt darin das er mir sagt das er ein problem beim kovertieren an der stelle hat wo er den inhalt in den bytepointer schreiben will, was ja eigentlich logisch ist.</p>
<p>ich weiss jedoch nicht wie ich das am besten lösen könnte.</p>
<p>habt ihr einen tipp fuer mich ???</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021533</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Wed, 22 Mar 2006 09:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 10:28:54 GMT]]></title><description><![CDATA[<p>bytepointer ist ein char, den kannst du so einfach nicht aus einem struct extrahieren (und selbst wenn das gehen sollte, würde dein Code das erste Byte deiner struct n-mal schreiben). Schau dich besser mal nach fread()/fwrite() um, die sind für <strong>binäre</strong> Ein/Ausgabe besser geeignet als fprintf().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021564</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Mar 2006 10:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 10:55:06 GMT]]></title><description><![CDATA[<p>alles klar danke soweit. schau ich mir mal an. eine frage habe ich noch.</p>
<p>habe grade gesehen das ich anstelle von</p>
<pre><code class="language-cpp">char
</code></pre>
<p>auch</p>
<pre><code class="language-cpp">Byte
</code></pre>
<p>nehmen könnte. oder würde das kein unterschied machen ?</p>
<p>ich habe diesen auszug gefunden:</p>
<pre><code class="language-cpp">// pointer_to_Byte_array.cpp
// compile with: /clr
using namespace System;
int main() 
{
   Byte bArr[] = {1, 2, 3};
   Byte* pbArr = &amp;bArr[0];

   array&lt;Byte&gt; ^ bArr2 = gcnew array&lt;Byte&gt;{1,2,3};
   interior_ptr&lt;Byte&gt; pbArr2 = &amp;bArr2[0];
}
</code></pre>
<p>wenn ich namespace system includen will erkennt er das nicht. ich weiss auch nicht wieso. wäre sowas denn der richtige weg ? oder brauch ich mich gar nicht weiter damit rum zu ärgern weil es eh der falsche weg ist ??</p>
<p>danke</p>
<p>EDIT:</p>
<p>habe es jetzt so:</p>
<pre><code class="language-cpp">TCORRECTIONTABLE CorrectionTable;

  char *byteptr;

  int i;

  FILE *datei;

  datei = fopen(FileName_end,&quot;a&quot;);

  fseek(datei, 0L,SEEK_SET);

  byteptr = &amp;CorrectionTable;

  for(i = 0; i &lt; MEMDUMPSIZE-1 ; i++)
  {
    fwrite(&amp;byteptr,sizeof(byteptr),1,datei);
  }

  fclose(datei);

  return 0;
</code></pre>
<p>aber mit der konvertierung das muss anders gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021578</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Wed, 22 Mar 2006 10:55:06 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 10:57:44 GMT]]></title><description><![CDATA[<p>Vodn7V schrieb:</p>
<blockquote>
<p>alles klar danke soweit. schau ich mir mal an. eine frage habe ich noch.</p>
<p>habe grade gesehen das ich anstelle von</p>
<pre><code class="language-cpp">char
</code></pre>
<p>auch</p>
<pre><code class="language-cpp">Byte
</code></pre>
<p>nehmen könnte. oder würde das kein unterschied machen ?</p>
</blockquote>
<p>Das kommt ganz darauf an, wie &quot;Byte&quot; definiert ist.</p>
<blockquote>
<p>wenn ich namespace system includen will erkennt er das nicht. ich weiss auch nicht wieso. wäre sowas denn der richtige weg ? oder brauch ich mich gar nicht weiter damit rum zu ärgern weil es eh der falsche weg ist ??</p>
</blockquote>
<p>Im Standard gibt es keinen Namespace &quot;system&quot; - und andere Namespaces kannst du nur nutzen, wenn du sie definiert hast (vermutlich benötigst du einen bestimmten Header dafür).</p>
<p>Edit: Zu deiner Ergänzung: Die Datengröße hast du falsch berechnet (richtig wäre &quot;sizeof(CorrectionTable)&quot; - und du benötigst einen expliziten cast für die Umwandlung (reinterpret_cast).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021583</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Mar 2006 10:57:44 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 11:02:16 GMT]]></title><description><![CDATA[<p>ja nach den headern habe ich schon geguckt, nach gegoogled und in der msdn nachgeschaut. und nur immer das hier gefunden &quot; (in mscorlib.dll)&quot;</p>
<p>in machnen quellcodes stand es auch so : #using mscorlib.dll;</p>
<p>das habe ich auch probiert. ging aber nicht. gibt es denn noch einen anderen weg ?</p>
<p>danke dir !!</p>
<p>EDIT: k danke das mit der datengröße habe ich geändert.</p>
<p>ja das sagt er auch in der fehlermeldung. aber ich habe keine konvertierungsmöglichkeit gefunden bis jetzt .</p>
<pre><code class="language-cpp">struct TCORRECTIONTABLE *' kann nicht in 'char *' konvertiert werden
        Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1021587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021587</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Wed, 22 Mar 2006 11:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 11:05:19 GMT]]></title><description><![CDATA[<p>Vodn7V schrieb:</p>
<blockquote>
<p>ja nach den headern habe ich schon geguckt, nach gegoogled und in der msdn nachgeschaut. und nur immer das hier gefunden &quot; (in mscorlib.dll)&quot;</p>
<p>in machnen quellcodes stand es auch so : #using mscorlib.dll;</p>
<p>das habe ich auch probiert. ging aber nicht. gibt es denn noch einen anderen weg ?</p>
</blockquote>
<p>Eine DLL ist kein Header <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>ja das sagt er auch in der fehlermeldung. aber ich habe keine konvertierungsmöglichkeit gefunden bis jetzt .</p>
<pre><code class="language-cpp">struct TCORRECTIONTABLE *' kann nicht in 'char *' konvertiert werden
        Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
</code></pre>
</blockquote>
<p>Da steht doch sogar dabei, was du benötigst:</p>
<pre><code class="language-cpp">byteptr=reinterpret_cast&lt;char*&gt;&amp;CorrectionTable;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1021593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021593</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Mar 2006 11:05:19 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 11:17:10 GMT]]></title><description><![CDATA[<p>sorry ich bin noch nichts so der fuchs was das angeht. bin erst seit januar im geschäft <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>
<pre><code class="language-cpp">byteptr=reinterpret_cast&lt;char*&gt;&amp;CorrectionTable;
</code></pre>
<p>also das einfach hinschreiben ?</p>
<pre><code class="language-cpp">error C2059: Syntaxfehler : '&amp;'
 error C2143: Syntaxfehler : Fehlendes '(' vor '&amp;'
</code></pre>
<p>die fehlermeldungen hab ich da bekommen.</p>
<p>das mit dem reinterpret cast habe ich oft gehabt immer konvertierungsprobleme. geht das denn so einfach ?</p>
<p>wenn zb double gefragt ist :</p>
<p>bla = reinterpret_cast&lt;double&gt; &amp;CorrectionTable;</p>
<p>? habe ich das richtig verstanden ?</p>
<p>nur fuer die zukunft <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="🙂"
    /> oder voll auf dem holzweg <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>EDIT: k sorry lag an den klammern. aber so algemein wie ich mir das dachte is das richtig so `?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021597</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Wed, 22 Mar 2006 11:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 11:20:00 GMT]]></title><description><![CDATA[<p>Hi!</p>
<pre><code class="language-cpp">ptr = reinterpret_cast&lt; dst *&gt;( &amp;xyz  );
//also
byteptr = reinterpret_cast&lt; char *&gt;( &amp;CorrectionTable );
</code></pre>
<p>Du brauchst natürlich Klammern. Im Übrigen kannst du nicht wahrlos zwischen Datentypen herumcasten. Ganz davon abgesehen das man Casts sowiso immer vermeiden sollte, musst du dir schon ein wenig Gedanken darüber machen was du castest und ob es Sinn macht.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021598</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 22 Mar 2006 11:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 11:19:47 GMT]]></title><description><![CDATA[<p>also so recht will das 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>
<pre><code class="language-cpp">TCORRECTIONTABLE CorrectionTable;

  char *byteptr;

  int i;

  FILE *datei;

  datei = fopen(FileName_end,&quot;a&quot;);

  fseek(datei, 0L,SEEK_SET);

  byteptr = reinterpret_cast &lt;char*&gt; (&amp;CorrectionTable);

  for(i = 0; i &lt; MEMDUMPSIZE-1 ; i++)
  {
    fwrite(&amp;byteptr,sizeof(CorrectionTable),1,datei);
  }

  fclose(datei);

  return 0;
</code></pre>
<p>so sieht es jetzt aus. wenn ich das aber laufen lasse dann wird die textdatei endlos groß---- ist dann schnell mal bei über 500mb .</p>
<p>hier nochmal das füllen :</p>
<pre><code class="language-cpp">char one_two_seven[16];

  strcpy (one_two_seven,&quot;127&quot;);

  char null[16];

  strcpy (null,&quot;0&quot;);

  TCORRECTIONTABLE CorrectionTable;

  for(int j = 0; j &lt; 1023; j++)
  {
    for(int x = 0; x &lt; 15; x++)
    {
      CorrectionTable.FacetNum[x].CorrPoint[j].DDS_REG_VAL = FDD_scenter;
      CorrectionTable.FacetNum[x].CorrPoint[j].Intens = one_two_seven[x];
      CorrectionTable.FacetNum[x].CorrPoint[j].CrossScan = one_two_seven[x];
      CorrectionTable.FacetNum[x].CorrPoint[j].Facet_Offset = null[x];
      CorrectionTable.FacetNum[x].CorrPoint[j].Not_Used = null[x];
    }
  }

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1021599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021599</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Wed, 22 Mar 2006 11:19:47 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 11:47:43 GMT]]></title><description><![CDATA[<p>Dein fwrite()-Aufruf schreibt bereits die komplette Struktur in die Datei - da brauchst du keine for()-Schleife drumherum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021620</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Mar 2006 11:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Wed, 22 Mar 2006 13:54:50 GMT]]></title><description><![CDATA[<p>es passt irgendwie nicht so richtig.</p>
<p>so sieht es im moment aus :</p>
<pre><code class="language-cpp">double WriteCorrDataToFile(CString FileName_end)
{
  TCORRECTIONTABLE CorrectionTable;

  char byteptr;

 // int i;

  FILE *datei;

  datei = fopen(FileName_end,&quot;a&quot;);

  fseek(datei, 0L,SEEK_SET);

  byteptr = reinterpret_cast &lt;char&gt; (&amp;CorrectionTable);

  //for(i = 0; i &lt; MEMDUMPSIZE-1 ; i++)
  //{
  //fprintf(datei,&quot;%d&quot;,CorrectionTable);
  fwrite(&amp;byteptr,sizeof(CorrectionTable),1,datei);
  //}

  fclose(datei);

  return 0;
}

double WriteDataToStruct(unsigned int FDD_scenter)
{

  TCORRECTIONTABLE CorrectionTable;

  for(int j = 0; j &lt; 1023; j++)
  {
    for(int x = 0; x &lt; 15; x++)
    {
      CorrectionTable.FacetNum[x].CorrPoint[j].DDS_REG_VAL = FDD_scenter;
      CorrectionTable.FacetNum[x].CorrPoint[j].Intens = 0x7F;
      CorrectionTable.FacetNum[x].CorrPoint[j].CrossScan = 0x7F;
      CorrectionTable.FacetNum[x].CorrPoint[j].Facet_Offset = 0x00;
      CorrectionTable.FacetNum[x].CorrPoint[j].Not_Used = 0x00;
    }
  }

  return 0;
}
</code></pre>
<p>jedoch schreib er falsch in die datei. was kann das sein ?</p>
<p>wenn ich mit dem debugger durchgehe kann ich sehen das er die center frequenz, die 127 und die 0 (als hex dargestellt) ohne probleme in daas struct geschrieben werden.</p>
<p>aber er schreibt es irgendwie falsch in die datei !!?</p>
<p>hast du noch nen tipp ?</p>
<p>danke dir</p>
<p>EDIT: also ich gehe davon aus das es am schreiben liegt, weil wie schon gesagt , wenn ich mit dem debugger beim &quot;in den struct schreiben &quot; durchgehe dann befinden sich die daten im struct.</p>
<p>wenn ich mit einem programm die datei dann aber auslese gibt er mir den reingeschriebenen wert der auf 127 stehen sollte immer auch 210 aus. egal ob ich in hex zahlen 1 oder 500 angebe. immer 210. deswegen gehe ich davon aus das er flasch schreibt.<br />
bin gespannt auf deine antwort.</p>
<p>danke schonmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021663</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Wed, 22 Mar 2006 13:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 07:22:54 GMT]]></title><description><![CDATA[<p>*schieb*</p>
<p>hat jemand noch ne tipp ? was gibt es noch fuer befehle in denen ich byteweise in eine datei schreiben kann ?<br />
danke</p>
<p>EDIT: das problem liegt irgendwo im struct. die daten werden ins struct geschrieben jedoch sobald die funktion zum schreiben der datei aufgereufen wird ist das struct leer <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1022101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022101</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 07:22:42 GMT]]></title><description><![CDATA[<p>Du hast einen char dekalriert und packst in den das erste Byte der Adresse deiner Tabelle - anschließend schreibst du diesen char und die nächsten x Bytes in deine Datei (was dort steht, gehört dir nicht einmal), also brauchst du dich nicht wundern, wenn du nur Müll bekommst. Richtig wäre es, wenn du einen char* verwendest:</p>
<pre><code class="language-cpp">void WriteToFile(string name,const TCORRECTIONTABLE&amp; data)
{
  char* byteptr=reinterpret_cast&lt;char*&gt;(&amp;data);
  ofstream file(name.c_str(),ios::out|ios::binary);
  file.write(byteptr,sizeof(data));
}
</code></pre>
<p>PS: Ein zweiter Fehler - du hast deine Tabellen lokal definiert, also werden sie am Ende jeder Funktion gelöscht.</p>
<p>PPS: In C++ solltest du besser fstreams verwenden anstelle von C FILE-Pointern <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1022107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022107</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:22:42 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 07:37:49 GMT]]></title><description><![CDATA[<p>aber jetzt nochmal vorab. zu meinem EDIT: ist das denn nicht komisch das wenn ich tcorrectiontable aufrufe da nichts mehr drinsteht ? also ich bin mit dem debugger durchgegangen in der funktion in der er das in das struct schreibt. kein problem kann die daten einsehen die er reingeschrieben hat. wenn ich aber in der funktion nen brekpoint setze in der die datei geschrieben is und nachgucke was in tcorrectiontable drinsteht. dann steht nur der erste wert der mit unsigned int deklariert ist im struct. die anderen char elemente sind leer. bzw es steht &quot;52 I &quot; da drin.</p>
<p>EDIT: k werde das mal verseuchen. die anders zu definieren,</p>
<p>EDIT 2: <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="😞"
    /> wie mache ich das denn ? und wieso steht 1 wert immer noch drin nur die char werte werden gelöscht ?</p>
<p>habe es so gemacht</p>
<pre><code class="language-cpp">WriteDataToStruct (FDD_scenter[z],CorrectionTable);

               WriteCorrDataToFile(FileName_end,CorrectionTable);
           }
</code></pre>
<pre><code class="language-cpp">double WriteDataToStruct(unsigned int FDD_scenter,TCORRECTIONTABLE CorrectionTable )
{

  ;
</code></pre>
<p>wenn ich da nen const hinmache sagt der mir nur errors weil der L_Wert konstant ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022114</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:37:49 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 07:41:52 GMT]]></title><description><![CDATA[<p>Vodn7V schrieb:</p>
<blockquote>
<p>ist das denn nicht komisch das wenn ich tcorrectiontable aufrufe da nichts mehr drinsteht ?</p>
</blockquote>
<p>Nicht wirklich - du hast zwei Tables angelegt (in jeder Funktion eine eigene) und die werden jeweils am Ende der Funktion wieder aufgeräumt. Du solltest stattdessen in der Hauptfunktion eine Tabelle anlegen und diese an die Hilfsfuntkionen übergeben:</p>
<pre><code class="language-cpp">void WriteToFile(const string&amp; name,const TCORRECTIONTABLE&amp; data)
{
  //siehe oben
}

void FillStruct(TCORRECTIONTABLE&amp; data)
{
  for(int j = 0; j &lt; 1023; j++)
  {
    for(int x = 0; x &lt; 15; x++)
    {
      data.FacetNum[x].CorrPoint[j].DDS_REG_VAL = FDD_scenter;
      data.FacetNum[x].CorrPoint[j].Intens = 0x7F;
      data.FacetNum[x].CorrPoint[j].CrossScan = 0x7F;
      data.FacetNum[x].CorrPoint[j].Facet_Offset = 0x00;
      data.FacetNum[x].CorrPoint[j].Not_Used = 0x00;
    }
  }
}

int main()
{
  TCORRECTIONTABLE CorrectionTable;
  FillStruct(CorrectionTable);
  ...
  WriteToFile(&quot;table.dat&quot;,CorrectionTable);
}
</code></pre>
<p>(Edit: Und damit die Daten ans Hauptprogramm zurückgehen können, mußt du die Tabelle als <strong>Referenz</strong> übergeben (das ist das unscheinbare &amp; vor dem Namen ;)))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022125</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:41:52 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 07:53:26 GMT]]></title><description><![CDATA[<p>k das versteh ich danke. habe soweit alles umgeschrieben. jetzt jedoch die meldung :</p>
<pre><code class="language-cpp">error C2440: 'reinterpret_cast' : 'const struct TCORRECTIONTABLE *' kann nicht in 'char *' konvertiert werden
</code></pre>
<p>was hab ich jetzt schon wieder falsch gemacht ?</p>
<p>EDIT: aber sehr geil mit der übergabe der daten das klappt jetzt schonmal <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>EDIT2: habe das const einfach weggemacht. jetz tgeht es <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>*knuuuuuuuuuuuuuuuuuuutsch*</p>
<p>DANKE DIR !!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022131</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 07:58:42 GMT]]></title><description><![CDATA[<p>so das gute Forum !</p>
<p>ihr habt echt nen dickes Lob verdient. auch wenn es nicht immer einfach mit mir oder den anderen die noch nichts so vie ahnung davon haben ist, wird einem trotzdem immer bestens geholfen.</p>
<p>PERFEKT !!</p>
<p>EDIT: ihr könnt ja bald schon lehrgeld nehmen <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="🙂"
    /> habe schon sehr viel bei euch gelernt !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022143</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 09:56:39 GMT]]></title><description><![CDATA[<p>hätte da doch noch mal nme frage <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>konnte nirgends was finden. weder bei google noch hier . also ich schreiben ja so in die datei :</p>
<pre><code class="language-cpp">char* byteptr = reinterpret_cast&lt;char*&gt;(&amp; data);

  ofstream file(FileName_end,ios::out|ios::binary);

  file.write(byteptr,sizeof(data));
</code></pre>
<p>meine frage:</p>
<p>ich habe jetzt einen pfad den ich mit dem filedialog auslese. wie füge ich den in die fwrite funktion ein, so dass er auch in den pfad schreibt ??</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022228</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 09:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 10:01:12 GMT]]></title><description><![CDATA[<p>Vodn7V schrieb:</p>
<blockquote>
<p>ich habe jetzt einen pfad den ich mit dem filedialog auslese. wie füge ich den in die fwrite funktion ein, so dass er auch in den pfad schreibt ??</p>
</blockquote>
<p>Gar nicht - fwrite() bzw. fstream::write() erwartet, daß du vorher die richtige Datei geöffnet hast. (und das machst du, indem du den Dateinamen an den ofstream-Konstruktor übergibst)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022235</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 23 Mar 2006 10:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 10:05:56 GMT]]></title><description><![CDATA[<p>ich öffne doch vorher gar keine datei oder ? ich erstelle doch jedes mal eine neue mit fwrite. dem knstrukot übergeb ich meinen dateinamen ja, aber ist es nicht möglich den pfad mit zu übergeben ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022239</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 10:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 10:12:31 GMT]]></title><description><![CDATA[<p>Vodn7V schrieb:</p>
<blockquote>
<p>ich öffne doch vorher gar keine datei oder ?</p>
</blockquote>
<p>Doch - das erledigt der Konstruktor &quot;ofstream file(FileName_end,ios::out|ios::binary);&quot; freundlicherweise für dich <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>ich erstelle doch jedes mal eine neue mit fwrite.</p>
</blockquote>
<p>Nein fwrite() erzeugt keine Datei - es füllt nur eine bereits geöffnete Datei (fopen()) mit Daten.</p>
<p>(PS: Wie gesagt, in C++ solltest du statt der f...()-Funktionen lieber fstreams verwenden)</p>
<blockquote>
<p>dem knstrukot übergeb ich meinen dateinamen ja, aber ist es nicht möglich den pfad mit zu übergeben ?</p>
</blockquote>
<p>Dem Konstruktor kannst du alles übergeben, was nach Dateiname aussieht - auch einen kompletten Pfad zur Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022241</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 23 Mar 2006 10:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to byteweise schreiben. on Thu, 23 Mar 2006 10:17:29 GMT]]></title><description><![CDATA[<p>pefekt. es geht. besten dank !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022244</guid><dc:creator><![CDATA[Vodn7V]]></dc:creator><pubDate>Thu, 23 Mar 2006 10:17:29 GMT</pubDate></item></channel></rss>