char * im Builder anzeigen (HALLO\0DU\0DA\0 ) zeigt nur HALLO



  • Original erstellt von YLIREBUS:
    **Ich habe die Daten so vorliegen:

    Hallo\r\nDU\r\nDa\r\n (aus einer Datei gelesen).**

    Und wo ist dann das Problem?

    String str = "Hallo\r\nDU\r\nDa\r\n";
    Memo1->Text = str;
    


  • das Problem ist :
    ich habe eine dll , die Funktionen enthaelt,
    der uebergebe ich eine gefuellte Struktur

    --> DATEN

    z.B SendeDaten(DATEN);

    ich moechte aber vorher wissen, ob die DATEN OK sind

    [ Dieser Beitrag wurde am 07.07.2003 um 18:42 Uhr von YLIREBUS editiert. ]



  • Mit senden meine ich an jemand anderes uebers internet haette ich vieleicht dazu sagen sollen.
    Das senden macht aber die dll.
    Da habe ichz auch keinen Einfluss drauf.
    Ich muss nur die Daten aufbereiten.



  • Lass 2 Pointer durchlaufen und selektiere damit die Satzteile! 😉

    char *Wort=AdresseVonSatzPuffer;
      char *WortEnde=Wort;
      Memo1->Clear();
      while (WortEnde[1]!=0)
      {
        while (WortEnde[0]!=0)
        {
          WortEnde++;
        }
        Memo1->Lines->Add(Wort);
        Wort=++WortEnde;
      }
    

    Voila, in Memo1 stehen alle Satzteile zeilenweise! :p



  • @DerAltenburger
    Danke , aber das wollte ioch gar nicht.

    moechte mir im Builder einen String ansehen !!!!!!!!!!!!
    ich habe in einem AnsiString TEST= "Hallo\0Du\0Da\0\0" !!!!
    Wenn ich mit der Maus zur Laufzeit ueber TEST gehe sehe ich nur "Hallo"
    der String nur bis zum \0 angezeigt wird.

    ich moechte aber den ganzen String sehen !!!

    mehr nicht ich brauch den nicht auswerten !!!Ich dachte einfach nur ich kann mir irgendie den Speicherinhalt anschauen !!!

    Trotz alllem Danke

    [ Dieser Beitrag wurde am 07.07.2003 um 20:32 Uhr von YLIREBUS editiert. ]



  • Original erstellt von YLIREBUS:
    ich habe in einem AnsiString TEST= "Hallo\0Du\0Da\0\0"

    Hast du eben nicht, der AnsiString hört beim ersten '\0' auf (da null-terminiert).



  • Richtig und jetzt die alles entscheidende Frage :

    Wie kann ich in der Entwicklungsumgebung diesen String
    sichtbar machen "Speicherabbild oder so" ,
    OBWOHL eigentlich nur HALLO angezeigt werden wuerde ??????

    ICh weiss das die Gegenstelle eine doppelte 0 terminierung erwartet fuer das ende.

    Ich koennte mir jetzt ein tool bauen, welches den char* ablaeuft und auf eine doppelte nullterminierung wartet, aber dann muesste ich das in eine Funktion oder so bauen.
    ICh suche aber eigendlich so etwas wie die Auswertung zur laufzeit mit maus drueber oder so.

    "Speicherabbild halt.



  • Es ist halt nunmal so, daß laut Definition ein String mit '\x00' endet und darauf bauen auch alle Standardfunktionen auf. Willst Du was anderes, mußt Du selber Hand anlegen und was zusammenstricken ...



  • du öffnest die Datei im binärmodus, lädst sie komplett in ein array rein und ersetzt dann in einer for-Schleife alle vorhandenen '\0' durch ' '?

    Dann mit normalen Stringfunktionen bearbeiten und denn du den Kram dann wieder speichern/mailen/wasauchimmer willst musst du die ganze Aktion nochmal andersrum machen(und aufpassen das er die doppelten \0 ans Ende macht).



  • @Peter , Danke das ist mal ne Antwort, mit der ich leben kann.
    nicht die, die ich mir erhofft habe, aber die die dich erwartet
    habe.

    Ich dachte so in die Richtung:
    Hey, da gibt es so etwas aehnliches wie die GExperts damit geht
    das ....



  • Setze deinen Cursor auf deine Variable, Tastenkomp. STRG+F5, in den Fenster was angezeigt wird rechte Maustaste Bereich ändern, mußt höher setzen.

    Und siehe da deine Variable.


Anmelden zum Antworten