Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » mehrere Wörter aneinanderhängen? Mit strcpy?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.06.2004, 08:32 Uhr
Unwissende
...die wirklich Unwissende 8-)


Hallöchen,

ich versuche gerade, Daten in ein Protokollfile zu schreiben.
Ich würde gerne Wörter aneinanderhängen, diese in ein Array of char schreiben und dann letztendlich mit fprintf in eine Datei reinschreiben.
Wie würdet ihr vorgehen?
Hier der Sourcecode



strcpy(Err_txt, "\nFCI Addr Read ?");

C++:
    while(addr <= (UINT32*)end)
    {
        value_r=(*addr) & mask;
        //addr=addr+4;  //wortweise
        if (value_r != value_w++ & mask)
        {
            if (err_count<=MAX_ERR)
            {
                data_expected[err_count]=value_r;
                data_send[err_count]=value_w;
            }
            err_count++; //increments no. of errors
        }
        if (err_count>MAX_ERR)
        {
            return err_count;
        }
        
    }
    return err_count;



data_expected und data_send sollen ein String sein, an den immer wieder Werte reingeschrieben werden, ohne die alten zu löschen..?!?!
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.06.2004, 09:20 Uhr
ao

(Operator)


Wenn du den Kram in einem String speicherst, musst du immer im Hinterkopf behalten, dass der nur ne begrenzte Länge hat; das macht, wenn es stabil laufen und auch mit großen Datenmengen klarkommen soll, genauso viel Arbeit wie ein "ordentlicher" Ansatz.

Es gibt sog. Containerklassen, in die du (fast) beliebig viele Daten erst mal reinstopfen und an anderer Stelle wieder rausholen kannst. In der STL heißt das z.B. std::list, in MFC CList oder auch CArray (wenn dir indizierter Zugriff wichtiger ist als sequentieller).

Du kannst den Container natürlich auch selber programmieren, aber das hat angesichts fertiger und erprobter Lösungen nur akademischen Wert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.06.2004, 09:24 Uhr
rene04



ähm moment,

habe ich da was falsches gelernt ? ein cstring ist 0 terminiert und nicht größenbegrenzt. so hab ichs gelernt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.06.2004, 09:27 Uhr
rene04



ich würde das so machen : erst den kram( zeilenweise) in nen cstring. von da in ein carray. von da aus kannst du dann jede zeile mit nem index von carray ansprechen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.06.2004, 10:02 Uhr
ao

(Operator)



Zitat:
rene04 postete
habe ich da was falsches gelernt ? ein cstring ist 0 terminiert und nicht
größenbegrenzt. so hab ichs gelernt.

Aber du musst den Speicher dafür bereitstellen (also so was wie char szText [1024]; schreiben). Und der passt sich nicht dynamisch an; wenn er voll ist, ist er voll.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.06.2004, 10:14 Uhr
ao

(Operator)



Zitat:
rene04 postete
ich würde das so machen : erst den kram( zeilenweise) in nen cstring. von da in ein carray.

Ach so, du meinst keine Zeichenkette nach C-Konvention, sondern die MFC-Klasse CString. Es ist doch nützlich (wenn auch extrem uncool, zugegeben), gelegentlich die Shift-Taste zu benutzen. ;-)

CString kümmert sich in der Tat selbst um seinen Speicher. Aber Unwissende schrieb von einem Array of char, und darauf bezog sich meine Antwort.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.06.2004, 10:49 Uhr
rene rosenberger



ach so...
--
gruesse rene
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: