Int / String aufteilen



  • Und wie teile ich einen String???

    Naja. Da mir einige Nachteile für das Int in array gekommen sind, will ich es so machen.

    Ich schick über den Socket ne Zahlenkombination, die ich dann teile.
    Die Kombi enthält Werte die ich zum Rechnen brauch und Zahlen die ich zum Auswerten bracuh, was mit dem Wert passieren soll.
    Also bracuh ich dann doch Int.

    Und nen Char oder so kann ich net übers Socket schicken.
    Da meckert mir der Builder immer das AnsiStrinToChar net möglich ist und so nen Kram.



  • Original erstellt von Thargor:
    Und wie teile ich einen String???

    Die Methoden des AnsiString sind dir bekannt? (Nein? Sofort in der HIlfe nachschlagen (o; )

    Abgesehen davon kann man über Socket-Verbindungen sehr wohl binäre Daten versenden. Stichwort SendBuf.....

    -junix



  • Naja.

    AnsiString kenn ich, aber wie man es trennt ist mir noch nicht bekannt.

    Wenn ich dann nen String geteilt bekomme, hab ich alles was ich brauch.
    Werd mir trotzdem mal anschauehen, da ich wahrscheinlich an einem Punkt ein Char (nen Spielernamen) schicken muss.



  • Original erstellt von Thargor:
    AnsiString kenn ich, aber wie man es trennt ist mir noch nicht bekannt.

    Hi,

    schau mal hier: http://www.junix.ch/bcb/help/hilfe.html

    Und du willst einen Char bzw. String über den Socket senden? Gab es dafür nicht SendText?!

    MFG

    Alexander Sulfrian



  • Ajaa.

    Gerade Das verwende ich ja.
    Aber wenn ich die Variable der ich diesen Wert zuweißen will (am Server) als Char deklariere macht der das net.

    Die Seite gibt es nicht.

    [ Dieser Beitrag wurde am 15.05.2003 um 18:02 Uhr von Thargor editiert. ]



  • Hat sich erledigt.

    Hab was gefunden:

    String a=Edit1->Text;
    b=a;
    int lg=a.Length();
    int pos=b.AnsiPos("0");
    c=a.SubString(1,pos-1);
    d=a.SubString(pos+1,lg-pos);
    Edit2->Text=c;
    Edit3->Text=d;
    


  • Original erstellt von Thargor:
    **Hat sich erledigt.

    Hab was gefunden:

    String a=Edit1->Text;
    b=a;
    int lg=a.Length();
    int pos=b.AnsiPos("0");
    c=a.SubString(1,pos-1);
    d=a.SubString(pos+1,lg-pos);
    Edit2->Text=c;
    Edit3->Text=d;
    

    **

    nur noch eine Frage.

    wieso kann ich nen AnsiString net mit switch untersucghen??

    [C++ Fehler] Unit3.cpp(48): E2383 Der Auswahlausdruck in den Klammern einer switch-Anweisung muß ganzzahlig sein.

    kommt dann. Muss ich erst in String / Int oder so umwandeln??



  • Original erstellt von Thargor:
    **Gerade Das verwende ich ja.
    Aber wenn ich die Variable der ich diesen Wert zuweißen will (am Server) als Char deklariere macht der das net.

    Die Seite gibt es nicht.
    **

    Hi,
    DIE SEITE GIBT ES!!!
    Und als was deklarierst du die Var als char* oder char oder char[]?
    Und du hast nicht vergessen, dass man AnsiString mit einer Methode in ein char-Zeiger umwandeln kann?

    Original erstellt von Thargor:
    **wieso kann ich nen AnsiString net mit switch untersucghen??
    **

    Ja, das geht nicht! Mit switch kannst du nur int (bzw. char) untersuchen! Wenn du nur einen Buchstaben in dem String hast, einfach einem char zuweisen und an switch übergeben!
    Wen du wirklich Zeichenketten hast, musst du wohl oder übel eine if Konstruktion machen!

    MFG

    Alexander Sulfrian



  • Jo.

    Hab alles soweit.

    eingang = StrToInt(Socket->ReceiveText());
    b=eingang;
    lg=eingang.Length();
    pos=b.AnsiPos("*");
    c=eingang.SubString(0,pos-1);
    d=eingang.SubString(pos+1,lg-pos);
    

    nur wennich die C und D ausgebe hat er mir in C nichts reingeschieben

    Der Socket->ReceiveText() ewnthält golgentes 0*1
    die 1 schriebt es in d aber die 0 net in c.

    EDIT: Hat sich erledigt. Es gab ein kleines Int / Str wirwar. Hatte an der Falschen Stelle irgendwie StrToInt stehn. Jetzt klappt alles 1a! thx

    Und er gibt die Variablen so aus: "1". Wieso die dummen ""?? Das versaut alles. Kann die ja so net in ne Int schreiben

    [ Dieser Beitrag wurde am 15.05.2003 um 19:49 Uhr von Thargor editiert. ]



  • Original erstellt von Thargor:
    **```cpp
    c=eingang.SubString(0,pos-1);

    
      
    Und er gibt die Variablen so aus: "1". Wieso die dummen ""?? Das versaut alles. Kann die ja so net in ne Int schreiben**
    

    Hi,
    du weißt, dass String 1-basiert ist?!

    "" ist ein String! Um den ein eine int zu schreiben, musst du diesen String erst ein einen int umwandeln! Wie heist blos diese Funktion 🙄 (StringNachInteger oder ...)

    MFG

    Alexander Sulfrian



  • Ja. Ist mir dann auch gekommen.

    Ein Fehler war

    eingang = StrToInt(Socket->ReceiveText());
    

    und dann hatte ich die "" in

    #
    ClientSocket->Socket->SendText(1*0);
    

    vergessen


Anmelden zum Antworten