Strings zerlegen (war: Newbie benötig Hilfe)



  • hallo leute!

    erstmals möcht ich mich mal in diesem Forum vorstellen. ist nicht schlecht dieses Board, was ich bis jetzt so gelesen habe.

    nun zu meiner Bitte ob mir vielleicht wer helfen kann:

    ich habe eine Art Chatprogramm geschrieben um strings hin und her zu schicken.
    am anfang jeder zeile sezte ich einen solchen delimiter [||] und am ende den ||
    durch den delimiter soll das programm beim empfangen nun den string aufteilen und nach jedem delimiter soll der text in eine neue zeile des memofensters geschrieben werden.

    z.B ich gebe ein: hallo
    das programm mach aus dem hallo einen string der so aussieht: [||]hallo||

    wenn ich nun den text über mehrere zeilen schreibe z.b: hallo
    hallo

    dann schaut er so aus: [||]hallo||hallo||

    der empfänger sollte ihn dann aber so bekommen wie eingegeben, das heißt ich bräuchte eine funktion die mir bevor dem Socket->ReceiveText(); das irgendwie filtert.

    hier meine send funktion:

    void __fastcall TMainForm::oButtonSendClick(TObject *Sender)
    {
    
     int iIndex;
     AnsiString sDelimiter;
     AnsiString sSendString;
    
     sDelimiter=oComboBoxDelimiter->Text;
     sSendString="["+sDelimiter+"]";
    
      for(iIndex=0;iIndex<oMemoMyMessage->Lines->Count;iIndex++)
       {
        sSendString+=oMemoMyMessage->Lines->Strings[iIndex]+sDelimiter;
       }
    
      if (AmIServer)
       {
        ServerSocket->Socket->Connections[0]->SendText(sSendString);
       }
      else
       {
        ClientSocket->Socket->SendText(sSendString);
       }
     }
    

    könnte mir da eventuell wer helfen?

    mfg floxi

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!

    [ Dieser Beitrag wurde am 21.01.2003 um 20:34 Uhr von Jansen editiert. ]



  • Guck dir mal in der Hilfe die Methoden von AnsiString an. Da dürfte was brauchbares dabei sein, womit du dir ne Funktion zusammenbasteln kannst. 🙂



  • hallo ok ja hab mal was gefunden!

    geht das mit sSendString.Pos("|");

    nur habe ich da noch ein anderes problem dass ich nicht weiß wie ich den wert von sendstring in die andere funktion hineingebe, da ich diese sortierung in der ClientSocketRead Funktion machen will.

    wäre sehr dankbar für weitere hilfe!

    mfg floxi



  • Ich frag mich, wieso du überhaupt diese Formatierungszeichen darein machst.



  • die formatierungszeichen habe ich daher gemacht, da mir mein lehrer gesagt hat ich soll das so machen, damit sein programm meinen text auch erkennt. das tut es nun ja auch, wel ich das mit dem send ja hinbekommen habe, nur wenn er mir was schreibt dann bekomm ich eben nur alles in einer wurst.

    daher sollte ich das irgendwie trennen. nur weiß ich nicht wie und er sagt ich soll selbst probieren.

    wäre nett wenn mir jemand helfen könnte.
    habe auch icq!

    mfg floxi



  • AnsiString::SubString ist zum Beispiel geeignet. Vielleicht auch andere Methoden. Bin jetzt gerade nicht so firm.



  • ok danke erstmals werd mal ein bisschen weiter versuchen. vielleicht hat aber noch jemand andere vorschläge, welche auch ein anfänger in sachen programmieren versteht.

    mfg floxi



  • Schau doch einfach mal in die Hilfe zu AnsiString.


Anmelden zum Antworten