dini & split

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 leute


    Ich hab ein kleines Problem..


    kann man mit dini auch einzelne Daten aus einer Datei aussplitten?


    also so wie



    datei = "infos.cfg"
    split(datei, daten, '|');
    Info[1][tPosX] = floatstr(dini_Get(string, daten[0]));


    das geht aber nicht, beim printf wird alles als 0.0000 ausgegeben, obwohl auch eine datei mit daten angegeben ist und diese auch Koords drin hat...


    geht das mit dem splitten überhaupt?


    MFG

  • Also wenn ich dich richtig verstehe, willst du mithilfe von Dini etwas auslesen und diese Ausgabe splitten?
    Na dann geht das!


    new daten[5][16];// 5 = Soviele Daten, wie halt gesplittet werden müssen 16 = maximale Zeichenanzahl von den einzelnen Daten
    split(dini_Get("infos.cfg","key"),daten,'|');


    Wenn in infos.cfg

    Code
    key=Hallo|Banane|Kiwi|SAMP|Absenden


    stehen würde, dann wären die Daten so:

    Code
    daten[0] = Hallo
    daten[1] = Banane
    daten[2] = Kiwi
    daten[3] = SAMP
    daten[4] = Absenden


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • erst mal danke, funktioniert EIGENTLICH.. nur nimmt es für jeden Punkt die coords des ersten durchgangs (while-schleife):


    while(i < sizeof(Info))
    {
    split(dini_Get(string,"Info"), daten, '|');
    Info[i][tPosX] = floatstr(daten[0]);
    Info[i][tPosY] = floatstr(daten[1]);
    Info[i][tPosZ] = floatstr(daten[2]);
    printf("PosX:%f, PosY:%f, PosZ:%f",Info[i][tPosX],Info[i][tPosY],Info[i][tPosZ]);
    i++;
    }


    die Datei ist so aufgebaut:


    Info=PosX1|PosY1|PosZ1
    Info=PosX2|PosY2|PosZ2
    Info=PosX3|PosY3|PosZ3

  • Wenn du in einer Datei nur einen key verwendest, also keine verschiedenen, dann ist dini nicht sonderlich geeignet.
    Pobier es so:


    new File:info = fopen("infos.cfg",io_read), readstr[128], daten[3][16], i = 0;
    while(fread(info,readstr))
    {
    strdel(readstr,0,5); // Damit wäre das Info= weg
    split(readstr,daten,'|');
    Info[i][tPosX] = floatstr(daten[0]);
    Info[i][tPosY] = floatstr(daten[1]);
    Info[i][tPosZ] = floatstr(daten[2]);
    i++;
    }
    fclose(info);


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!