Zulanger String in 2 Strings aufteilen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo


    Problem
    Ich möchte zuerst sagen, dass ich bewusst ein neues Thema erstellt habe, da dass mit dem alten Ding nur bedingt zu tun hat. Die MySQL Datenbank läuft jetzt fehlerfrei, jedoch komme ich an einen Punkt, wo der Compiler einen Error ausgibt, da das query (der String) zu lang ist. Ich weiss eigentlich jetzt eigentlich, wie ich einen String trenne, bin mir hier aber nicht klar, da die Werte %d und %f als Values gebraucht werden und ich nicht weiss, ob das zu "INSERT gehört"


    Frage
    Wie kann ich den einen String richtig zu 2 Strings teilen und die Values berücksichtigen ?


    Code


    Error
    C:\Users\X\Desktop\dudalusv217.pwn(15558) : error 075: input line too long (after substitutions)


    VehicleSystem[Carid][CarID]=Carid;
    VehicleSystem[Carid][Model]=Carmodel;
    VehicleSystem[Carid][Locked]=0;
    VehicleSystem[Carid][Fraktion]=Carfraktion;
    VehicleSystem[Carid][Beruf]=Carjob;
    VehicleSystem[Carid][Locked]=Carnoob;
    VehicleSystem[Carid][Fraktion]=Carverwahrt;
    // VehicleSystem[Carid][Beruf]=Cartunebar;
    VehicleSystem[Carid][Carx]=CarX;
    VehicleSystem[Carid][Cary]=CarY;
    VehicleSystem[Carid][Carz]=CarZ;
    VehicleSystem[Carid][Cara]=CarA;
    VehicleSystem[Carid][Adacx]=AdacX;
    VehicleSystem[Carid][Adacy]=AdacY;
    VehicleSystem[Carid][Adacz]=AdacZ;
    VehicleSystem[Carid][Adaca]=AdacA;
    VehicleSystem[Carid][Color1]=Carcolor1;
    VehicleSystem[Carid][Color2]=Carcolor2;
    VehicleSystem[Carid][Price]=CarCost;
    VehicleSystem[Carid][Sell]=CarSell;
    strmid(VehicleSystem[Carid][Owner],"Unbought",0,20,20);
    format(query, sizeof(query),"INSERT INTO `Vehicles` (`CarID` ,`Model` ,`Locked` ,`CarFraktion` ,`CarJob` ,`CarNoob`,`CarVerwahrt` ,`CarX` ,`CarY` ,`CarZ` ,`CarA`,`AdacX` ,`AdacY` ,`AdacZ` ,`AdacA` ,`Color1` ,`Color2` ,`Price` ,`Sell` ,`Owner`) VALUES ('%d', '%d', '0','%d','%d','%d','%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', 'Unbought');",Carid, Carmodel,Carfraktion,Carjob,Carnoob, CarX, CarY, CarZ, CarA,AdacX,AdacY,AdacZ,AdacA, Carcolor1, Carcolor2, CarCost, CarSell);
    mysql_query(query)


    Die Errorzeile liegt beim format
    MfG dUDA

  • Der String ist nicht zulang sondern die Zeile hat mehr als 500Cels (Zeichen) .. =D
    Aber aufteilen klar geht das zwei mal Format nehmen zwei Stringnahmen und die zusammenführen in einem sonderstring oO

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Geht auch einfacher.
    new
    query[256],
    //
    Carid,
    Carmodel,
    Carfraktion,
    Carjob,
    Carnoob,
    CarX,
    CarY,
    CarZ,
    CarA,
    AdacX,
    AdacY,
    AdacZ,
    AdacA,
    Carcolor1,
    Carcolor2,
    CarCost,CarSell;
    format(query, sizeof(query),
    "INSERT INTO `Vehicles` (`CarID` ,`Model` ,`Locked` ,`CarFraktion` ,`CarJob` ,`CarNoob`,`CarVerwahrt` ,`CarX` ,`CarY` ,`CarZ` ,`CarA`,`AdacX` ,`AdacY` ,`AdacZ` ,`AdacA` ,`Color1` ,`Color2` ,`Price` ,`Sell` ,`Owner`)\
    VALUES ('%d', '%d', '0','%d','%d','%d','%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', 'Unbought');",
    Carid, Carmodel,Carfraktion,Carjob,Carnoob, CarX, CarY, CarZ, CarA,AdacX,AdacY,AdacZ,AdacA, Carcolor1, Carcolor2, CarCost, CarSell);

    Du kannst es auch direkt in mehrere Zeilen aufteilen.Wie du siehst ist am Ende der ersten Format Zeile ein Backslash \.Damit lässt du den String in der nächsten Zeile fortführen.Ach kannst du nach irgendeinem extra Parameter eine neue Zeile anfangen ( Dort ohne Backslash \ ).

  • Hallo


    Diese Methode begreif ich zwar nicht ganz, werde sie mir aber schnell anschauen,testen und morgen schön anschauen. Teste sie schnell.


    //Edit
    Alles geht,Goldkiller ist der Held des Abends ;)
    Dank dir

  • Hallo


    Das Problem ist, das nichts in die Tabelle "Vehicles" abgespeichert wird. Sonst geht alles 1a. Wäre um Hilfe recht froh, da ich keine Errors oder sonstige Log-Hinweise bekomme


    Hier der Connect Code:


    mysql_init();
    mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);



    Hier der AddVehicle und MySQL Code:
    http://pastebin.com/dqfiPtVB



    Hier ein Ausschnitt aus der Log beim Serverstart


    [17:18:53] [MySQL] Connected (0) to samp1111 @ Localhost via UNIX socket.
    [17:18:53] [MySQL] Version 5.1.41-3ubuntu12.6.
    [17:18:53]
    [17:18:53] ::::::::::::::::::::::: Fahrzeug erstellt :::::::::::::::::::::::
    [17:18:53]
    [17:18:53] CarID: 1
    [17:18:53] CarModel: 596
    [17:18:53] CarLocked: 0
    [17:18:53] CarFraktion: 0
    [17:18:53] CarJob: 0
    [17:18:53] CarNoob: 0
    [17:18:53] CarVerwahrt: 0
    [17:18:53] CarTunebar: 0
    [17:18:53] CarX: 1601.614990
    [17:18:53] CarY: -1683.976928
    [17:18:53] CarZ: 5.614900
    [17:18:53] CarA: 90.324699
    [17:18:53] AdacX: 0.000000
    [17:18:53] AdacY: 0.000000
    [17:18:53] AdacZ: 0.000000
    [17:18:53] AdacA: 0.000000
    [17:18:53] CarColor1: 0
    [17:18:53] CarColor2: 1
    [17:18:53] CarPrice: 20000
    [17:18:53] CarSell: 10000
    [17:18:53] CarOwner: Ungekauft
    [17:18:53]
    [17:18:53]


    Aber wenigstens geht es mal ohne Errors.
    MfG dUDA