Delimiter und Leerzeichen



  • Hallo,

    Ist ein Leerzeichen immer ein delimiter?!

    TStringList *Line=new TStringList();
             Line->Delimiter=';';
    	Line->DelimitedText=";Das ist ein Test";
             Label1->Caption= Line->Strings[1];  //
    

    im Label steht jetzt nur "Das" drin aber es sollte doch eigenlich "Das ist ein Test" drin stehen? in Strings[2] steht "ist" drin etc. etc.
    Wiso macht der das?



  • Hallo,

    gebe es so an:

    Line->Delimiter=59;
    

    Ich gebe die Delimiter immer als Int-Wert (Ascii-Wert) an,
    dann funktioniert es bei mir einwandfrei.

    Gruss, Stefan



  • Stefan7124 schrieb:

    Line->Delimiter=59;
    

    Ich gebe die Delimiter immer als Int-Wert (Ascii-Wert) an,
    dann funktioniert es bei mir einwandfrei.

    Aber ';' ist im ASCII-Code doch gleichbedeutend mit 59 und nur eine andere Schreibweise...



  • Also mit 59 gehts auch nicht.

    ich find es macht mehr sinn es so an zu geben ';' weil man da direkt sieht was sache ist und nicht erst überlegen muss warum da ne 59 steht!

    naja, aber das hat mein problem immer noch nicht gelöst! 😞



  • Line->StrictDelimiter=TRUE;
    

    Doku:

    Mit dieser Eigenschaft legen Sie fest, ob Delimiter der einzige in der Eigenschaft DelimitedText verwendete Wert ist. Bei True werden die einzelnen Strings in DelimitedText nur durch das in Delimiter angegebene Zeichen getrennt. Bei False können die einzelnen Strings in DelimitedText durch ein Leerzeichen, ein nicht druckbares Zeichen oder dem in Delimiter angegebenen Zeichen getrennt werden.

    Ich hoffe, ich erzähl hier keinen Mist. Ich hab von VCL eigentlich keine Ahnung.

    1 Minute Google...



  • Auch ich würder gerne etwas aus der Hilfe zitieren

    DelimitedText führt alle Strings im TStrings-Objekt zu einem String zusammen, .....

    Demnach würde ich versuchen über Add Elemnte in die Stringliste zu hängen und nicht direkt die Eigenschaft DelimitedText beschreiben.



  • Die Hilfe zu TStringList sollte eigentlich auch der erste Anlaufpunkt sein.
    @Hundeman
    Lies die Hilfe bitte richtig. Mit DelimitedText kann man auf die, in der Stringlist einzeln gespeicherten Strings, als einen String zugreifen. Die Zuweisung funktioniert schon so wie von JBOpael gewollt. In der Hilfe zu DelimitedText steht aber auch:

    Unabhängig von dem Wert von Delimiter wird ein Leerzeichen immer als Trennzeichen interpretiert, außer wenn das Leerzeichen in Anführungszeichen gesetzt ist.

    Dieses Verhalten kann mit dem von _matze erwähnten StrictDelimiter geändert werden. Das steht auch in der Hilfe.



  • Nunja, ich befolge natürlich gerne den Ratschlag die Hilfe genauer zu durchforsten. Dennoch steht in meiner Hilfe nichts dergleichen und auch die Eigenschaft StrictDelimiter ist in der Hilfe nicht erwähnt (die Eigenschaft ist auch nicht verfügbar). Kann es sein das dies erst später hinzugekommen ist?



  • Welche Builder-Version hast du denn?
    Der von mir erwähnte Hinweis steht in der BCB6-Hilfe noch nicht drin, auch StrictDelimiter gibt es da noch nicht. Beim BCB2007 aber schon.



  • Ich hab hier Version 6.



  • Danke Leute für euren Einsatz 🙂

    mit StrictDelimiter Funktioniert es so wie ich mir das vorgestellt habe.

    ich habe BCB 2007 und ich muss ehrlich sagen das wenn man nicht genau weiß was man sucht ist die hilfe ziemlich besch...

    da war die von BCB 6 um einiges besser, vor allem gab es da noch mehr beispiele zu einigen funktionen und methoden. die sind in BCB 2007 so gut wie gar nicht mehr vorhanden.



  • JBOpael schrieb:

    ich habe BCB 2007 und ich muss ehrlich sagen das wenn man nicht genau weiß was man sucht ist die hilfe ziemlich besch...

    Das trifft zu, und aus diesem Grund rate ich dringend dazu, das RAD Studio 2009 Help Update 1 herunterzuladen. Inhaltlich ist es da deutlich besser geworden.

    JBOpael schrieb:

    da war die von BCB 6 um einiges besser

    Auch das stimmt; du kannst sie im Zweifelsfall hier separat erhalten.


Anmelden zum Antworten