Wer mittels NMHTTP aus dem Weblesen und als itn speichern



  • Da werden sich Leerzeichen und/oder ein Zeilenumbruch eingeschlichen haben, die sieht man bei einem ShowMessage natürlich schlecht. 😉

    Kontrolliere nochmal die Ausgabe deines PHP-Scriptes.

    BigNeal:
    AnsiString hat kein abschliessendes /0. Zumindest keines, das in der Length-Methode mitgezählt würde.



  • Hi,

    ich habe doch gesagt das die ausgabe im html richtig ist:

    <?
    // Datenbankverbindung herstellen
    include "config.inc.php";
    
    // leztes produkt ermitteln
    $res = mysql_db_query($db_name, "SELECT SQL_NO_CACHE products_id FROM products order by products_id desc");
    
    $data = mysql_fetch_array($res);
    
    if (mysql_num_rows($res) > 0)
       echo $data[products_id];
    else
       echo "1";
    ?>
    

    Habe keine Ahnung wieso das nicht geht. voll blöde.

    kai



  • Kai Müller schrieb:

    ich habe doch gesagt das die ausgabe im html richtig ist

    Das hast du behauptet bzw. hoffst du, ein Beweis ist aber auch der gezeigte PHP-Code nicht. 😉

    Wie sieht denn ein ShowMessage("X" + pid + "X"); optisch aus?



  • Hi,

    ich habe nun diese beiden zeilen zwischeneingebaut:

    ShowMessage(pid.Length());
    ShowMessage("X" + pid + "X");

    Die erste Message gibt 8 aus, die andere:

    X348734
    X

    Da ist also ein zeilenumbruch drinnen. nur weswegen?

    kai



  • Vermutlich, weil er schon in der der DB mit drinsteht. Die Frage, wie er dort hineinkommt, hat mit dem BCB aber nichts mehr zu tun.

    Als Workaround könntest du mittels StringReplace o.ä. den Zeilenumbruch durch "", also 'nichts' ersetzen.



  • Hi jansen,

    das mit dem zeilenumbruch kann nicht sein:

    if (mysql_num_rows($res) > 0)
       echo $data[products_id] . "bumsen";
    else
       echo "1";
    

    das wort bumsen zeigt er direkt hinter der zahl an, daher kann da kein zeilenumbruch sein 🙂

    kai



  • Tatsache bleibt, dass ein Zeilenumbruch mitgeliefert wird. Er wird nicht von den HTTP-Komponenten angehängt, wie du durch Auslesen eines einfachen echo "blabla" überprüfen kannst.
    Also nichts, was sich auf der C++-Seite beeinflussen liesse.



  • hi,

    habe das problem nun so gelöst das ich nicht val->Text auslese, sondern val->Strings[0] und damit funktioniert mein code.

    somit komme ich erstmal weiter, um meine software zu proggen, immerhin spart mich die software 50.000 euros 🙂

    kai



  • hast du die ausgabe des PHP Scripts im browser angeschaut?

    Beim anzeigen von HTML werden \n's im HTML Quelltext nicht interpretiert.. also vielleicht mal in den quelltext schaun.



  • Kai Müller schrieb:

    habe das problem nun so gelöst das ich nicht val->Text auslese, sondern val->Strings[0]

    Oh, das Laden in die StringList habe ich ja völlig ignoriert. 😮 Da ist es natürlich logisch, dass beim Auslesen von Text ein Zeilenumbruch angehängt wird (also doch die C++-Seite).
    Wozu lädst du das überhaupt erst in eine StringList, anstatt direkt in pid? Offensichtlich wird doch ohnehin nicht mehr als dieser eine String übertragen!?


Anmelden zum Antworten