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 <
010
06.10.2003, 23:31 Uhr
mmc20
puss in boots


hi,
das "codiert[x+1]='\0';" würd ich weglassen, da ein CString doch eh schon null-terminiert ist ? oder etwa nicht ? was sagen denn die profis dazu ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
07.10.2003, 00:40 Uhr
mmc20
puss in boots


hi,
hab mir mal die mühe gemacht...

C++:
void CTestDlg::OnButton1()
{
    UpdateData(TRUE); // aktuelle werte aus dem dialog holen

    CString uncodiert = "ABCDEFGHIJK"; // bzw. vom dialog holen
    CString codiert = uncodiert; // damit hat der codierte string schonmal die selbe länge

    for (int i = 0; i < uncodiert.GetLength(); i++)
        codiert.SetAt(i,(uncodiert.GetAt(i) + 128));
    
    m_Ausgabe = uncodiert + " - " + codiert; // und ausgeben ... fertig
    UpdateData(FALSE);
}



also bei mir hats gefunzt...

Bearbeitung:
ich hab mal mit 128 addiert, dadurch eignet sich die function auch zum decodieren
wenns wirklich "geheim" werden soll ist es eventuell besser nicht alles mit 100 zu addieren sondern mit einem zweiten string (als passwort oder so )

Dieser Post wurde am 07.10.2003 um 01:07 Uhr von mmc20 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
07.10.2003, 01:18 Uhr
mmc20
puss in boots


so, ich nochmal : hier die lösung !


C++:
void CTestDlg::OnButton1()
{
    UpdateData(TRUE);
    CString uncodiert = m_Ausgabe;

    CString codiert = uncodiert;
    CString passwort = "0815";

    int j = 0;
    for (int i = 0; i < uncodiert.GetLength(); i++)
    {
        codiert.SetAt(i,(uncodiert.GetAt(i) + passwort.GetAt(j)));
        j++;
        if (j >= passwort.GetLength())
            j = 0;
    }
    
    m_Ausgabe = codiert;
    UpdateData(FALSE);
}

void CTestDlg::OnButton2()
{
    UpdateData(TRUE);
    CString codiert = m_Ausgabe;

    CString uncodiert = codiert;
    CString passwort = "0815";

    int j = 0;
    for (int i = 0; i < codiert.GetLength(); i++)
    {
        uncodiert.SetAt(i,(codiert.GetAt(i) - passwort.GetAt(j)));
        j++;
        if (j >= passwort.GetLength())
            j = 0;
    }
    
    m_Ausgabe = uncodiert;
    UpdateData(FALSE);
}



viel spaß damit !

Bearbeitung:
mann könnte natürlich alles in eine function packen und nur den opperator ( +/- ) austauschen...

Dieser Post wurde am 07.10.2003 um 01:21 Uhr von mmc20 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
07.10.2003, 07:49 Uhr
~John
Gast


eh, super, auf euch kann man sich echt verlassen- also das mit der Funktion wäre super, da ich mehrere Strings codieren müsste - leider habe ich nicht so viel Ahnung von VC++- könntest du mir die Funktion noch schreiben?? BITTE?!

Nochmals vielen vielen Dank!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
07.10.2003, 08:26 Uhr
0xdeadbeef
Gott
(Operator)


Da gibts jede Menge Möglichkeiten, das zu machen. Wenn wir dir allerdings immer alles vorbeten, lernst dus nie selber...ich denke, ich geb dir mal nen Ansatz, wie ich sowas anfangen würde.

C++:
typedef enum { DECODE = -1, ENCODE = 1 } code_action; //draufrechnen oder abziehen?

CString apply_code(CString uncodiert, CString passwort, code_action act)
{
  //... jetzt du.
}


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


Vielen Dank für deine Mühe,
ich probier mein Glück

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: