Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Hilfe- String decodiert sich nicht wieder?

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 < [ 2 ]
000
06.10.2003, 11:06 Uhr
~John
Gast


Hallo,

ihr habt mir schon super gezeigt, wie ich meinen String codieren kann, leider decodiert er sich nicht so wie er soll, es kommt am Ende nicht wieder das Original raus - was ist falsch??
hier mal ein Auszug:
__________________________________________________________

C++:
void CCharTestDlg::OnButton()
{
    CString csText;
    char* uncodiert=csText.GetBuffer(50);
    strcpy(uncodiert,"ABCDEFGHIJ");
    csText.ReleaseBuffer();

    char codiert[10];
    for (int x=0;x<10;x++)
    {
        codiert[x]=uncodiert[x]+100;
        codiert[x+1]='\0';
    };
    SetDlgItemText(IDC_STATIC,codiert);
}

void CCharTestDlg::OnButton2()
{
    CString Zeichen;
             SetDlgItemText(IDC_STATIC,Zeichen);
    
    CString csText;
    char* codiert=csText.GetBuffer(50);
    strcpy(codiert,Zeichen);
    csText.ReleaseBuffer();

    char uncodiert[10];
    for (int x=0;x<10;x++)
    {
        uncodiert[x]=codiert[x]-100;
        uncodiert[x+1]='\0';
    };
    SetDlgItemText(IDC_STATIC1,uncodiert);
}


___________________________________________


Bin Dankbar über jede Hilfe!
Gruss John


Bearbeitung von loddab:
cpp-Tags gesetzt. Denk bitte das nächste mal selber daran

Dieser Post wurde am 06.10.2003 um 11:22 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.10.2003, 11:44 Uhr
Tommix



Hallo,

Zitat:

C++:
void CCharTestDlg::OnButton2()
{
    CString Zeichen;
             SetDlgItemText(IDC_STATIC,Zeichen);
    ...



Du überschreibst den codierten String mit dem (leeren) Zeichen. Gemeint ist wohl eher GetDlgItemText.

Ausserdem würde ich CString konsequenter nutzen: Du kannst auf die einzelnen Buchstaben auch bei CString mit [] zugreifen und brauchst eigentlich keine Hilfsvariablen vom Typ char[].

Gruss, Tommix

Dieser Post wurde am 06.10.2003 um 11:45 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.10.2003, 12:59 Uhr
~John
Gast


Danke für Deine Hilfe, manchmal sieht man den Wald vor lauter Bäumen nicht!

Gruss John,
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.10.2003, 13:10 Uhr
~John
Gast


Nur leider klappt das mit CString [] nicht, oder ich mach was falsch

Beim compillieren bringt er mir 0 Fehler und 0 Warnungen beim ausführen aber stürzt er ab!

ich hab dabei die Umwandlung in char weggelassen und statt

char uncodiert[10]
CString uncodiert[10]

gesetzt
Das war doch so gemeint von dir, oder??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.10.2003, 13:21 Uhr
mmc20
puss in boots


hi,
war nicht so gemeint !
du legst mit "CString uncodiert[10]" ein array mit 10 elementen an.
lass die [10] weg, und benutz ganz normal "uncodiert[x]=codiert[x]-100;" dann müsstes gehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.10.2003, 13:37 Uhr
~John
Gast


also jetzt klappt gar nichts mehr, jetzt bringt er "codiert als unbekannte Größe"

ich bin neu in VC++ , sagt doch mal wie es richtig ist, also so nicht!
____________________________________________

C++:
    CString uncodiert="ABCDEFGHIJ";
    CString codiert[];
    for (int x=0;x=10;x++)
    {
        codiert[x]=uncodiert[x]+100;
        codiert[x+1]='\0';
    };
    SetDlgItemText(IDC_STATIC,codiert);


______________________________________________

Wer kann helfen??
Danke schon mal !!
Gruss John


Bearbeitung von loddab:
cpp-Tags gesetzt. Wenn du nicht weißt, wie das geht, dann schau mal hier.

Dieser Post wurde am 06.10.2003 um 13:45 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.10.2003, 13:41 Uhr
0xdeadbeef
Gott
(Operator)



C++:
CString codiert; //<-- du brauchst kein Array von strings


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.10.2003, 13:56 Uhr
~John
Gast


jetzt versteh ich gar nix mehr-

kann mir mal jemand sagen, wie es denn nun wirklich geht (ohne den String in einen char umzuwandeln)?!

CString oder CString[] das ist hier die Frage?

Bei mir stürtzt momentan alles ab, wenn ich es ohne [] mache, was ist da los??

Brauch unbedingt Hilfe, muss das heute noch hinkriegen!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.10.2003, 14:32 Uhr
Suchthaufen



Anstatt CString codiert; lieber CString codiert=uncodiert schreiben;
würde ich tippen dann sollts gehen. Nicht getestet, aber ich vermute in Zeile codiert[x+1]='\0';
gibts einen Assert weil du auf eine Stelle schreiben willst die es nicht gibt.

Nur der Vollständigkeithalber: Du müsstest nicht in der Schleife jedesmal codiert[x+1]='\0'; ausführen. Es würde am Ende reichen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.10.2003, 14:47 Uhr
~John
Gast


ich gebe es auf, es funktioniert leider nicht- schade, ich hätte mir den Weg über die char-Variable gern erspart

Falls noch einer ne Idee hat, bin gern dafür zu haben - ansonsten Danke für die Vorschläge!

Gruss John
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: