Dateien bzw. ganze Ordner schicken/hochladen

  • GM 7

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dateien bzw. ganze Ordner schicken/hochladen

    Hallo,
    Internetspiele hab ich noch gar nicht gemacht und weiß deshalb auch nicht wie das geht, ein Spiel möchte ich auch nicht machen, aber ich wollte mal fragen, ob es möglich ist Dateien oder noch besser ganze Ordner an einen LAN verbundenen Pc zu schicken, mit dem GM oder wie man Dateien und Ordner auf einen Server hochlädt??

    Ich hoffe ihr könnt mir da helfen, hab leider auch nichts richtiges mit der Suche gefunden.


    edit: hab noch ne Frage:
    Kann man sich im GM irgendwie die Namen aller Dateien in einem bestimmten Ordner anzeigen und wenn ja wie?


    Gruß Gamer
    Gruß Gamer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von The Gamer ()

  • zum normalen hochladen kannst du die ftp dll nehmen.
    bevor jetzt aber ghost ankommt:
    Es ist auch eine unsichere methode. wenn du ein spiel machen willst dann mach das ganze per php. wenn du aber einfach was hochladen willst(warum auch immer) dann würde ich sie dir wirklich empfehlen.
  • Zum Frage im Edit hier ein Beispiel:

    GML-Quellcode

    1. list = ds_list_create();
    2. file = file_find_first(working_directory+"\*",0);
    3. while (file != "") {
    4. ds_list_add(list,file);
    5. file = file_find_next();
    6. } file_find_close();
    Der Code füllt eine Liste mit den Namen der Dateien (also ohne Pfad) aus dem Ordner, in dem das Spiel/Programm liegt.
  • Ok danke, aber das schreibt doch nur einen Namen in die Liste oder?<br>Und wie kann ich die Namen mit show_message anzeigen, habs so probiert:<br>

    GML-Quellcode

    1. show_message(ds_list_find_index(list,file));
    <br>Hat aber nichts angezeigt.<br><br>Hab auch mal selber probiert und zwar, die ganzen Namen in nem Array zu speichern, hab ich aber gar nicht hinbekommen, kannst du mir das bitte mal erklären.<br>


    edit:
    Was ich jetzt geschafft hab, ist, dass man eine Endung eingeben kann und dann zeigt es die erste gefundene Datei aus, das hab ich so gemacht:

    GML-Quellcode

    1. //Create
    2. file = "";

    GML-Quellcode

    1. //Pressed Space
    2. ext = get_string("Insert ext",".txt");
    3. file = file_find_first(/*Pfad in Klammern*/ + ext,all);
    4. file_find_close();

    GML-Quellcode

    1. //Pressed Enter
    2. if file != ""
    3. {show_message(file);}
    4. else
    5. {show_message("Nothing found!");}


    Was ich aber möchte, dass es dann alle Dateien von dem Typ anzeigt und zwar alle im gleichen show_message.
    Das bekomm ich aber irgendwie sowohl mit arrays als auch mit lists net hin, da ich nicht oft mit Arrays arbeite, hab ich die Hilfe zur Hand genommen, aber leider bringt die mir überhaupt nichts, da nur ein paar Zeilen drüber steht, was Arrays sind und nicht wirklich wie man damit arbeitet, da ist zwar ein Beispielcode dabei, der ist aber nichtmal erklärt.

    Und was ich auch probiert habe, dass man nicht die Endung eingibt sondern es einfach jede Endung berücksichtigt, ich habs dann so wie Copyboy es geschrieben hat versucht und noch auf ein paar andere Methoden, hat aber alles nicht geklappt.


    Ich hoffe, ihr könnt mir helfen.

    Danke,
    Gruß Gamer.
    Gruß Gamer

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von The Gamer ()

  • Mit Listen sähe das so aus:

    GML-Quellcode

    1. list = ds_list_create();
    2. ext = get_string("Insert ext",".txt");
    3. file = file_find_first(working_directory+"\*"+ext,0);
    4. while (file != "") {
    5. ds_list_add(list,file);
    6. file = file_find_next();
    7. } file_find_close();
    8. str = "";
    9. for (i=0;i<ds_list_size(list);i+=1) {
    10. str += ds_list_find_index(list,i)+"#";
    11. } show_message(str);
    Alles anzeigen

    Ohne ist es natürlich kürzer, aber ich nehme mal an, du willst noch etwas mit den dateinamen machen ;)

    GML-Quellcode

    1. str = "";
    2. ext = get_string("Insert ext",".txt");
    3. file = file_find_first(working_directory+"\*"+ext,0);
    4. while (file != "") {
    5. str += file+"#";
    6. file = file_find_next();
    7. } file_find_close();
    8. show_message(str);

    Was die Endung angeht, da sollte * oder *.* eigentlich funktionieren.
    ( Wie immer nicht getestet, also verzeih mir Flüchtigkeitsfehler. )
  • Also bei der ersten Methode also mit Listen kommt beim anzeigen diese Fehlermeldung:

    Quellcode

    1. ERROR in
    2. action number 1
    3. of Key Press Event for <Enter> Key
    4. for object object0:
    5. Error in code at line 3:
    6. str += ds_list_find_index(list,i)+"#";
    7. at position 38: Wrong type of arguments to +.


    Das zweite funktioniert, danke.

    Hab aber noch ne Frage, bzw. noch zwei:
    1. Wie mache ich es, dass nicht nur die Dateien in dem jeweiligen Ordner angezeigt werden, sondern auch Dateien in den Unterordnern?
    2. Wie mache ich es, dass man keine Dateien, sondern Ordner anzeigen lassen kann?

    Wär echt nett, wenn ihr mir das auch noch verraten könntet.


    edit: zum anzeigen der Dateien, wie macht man das eig. mit arrays, das speichern in arrays bekomm ich glaub noch hin, nur ich weiß net richtig, wie ich die anzeige??
    Gruß Gamer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von The Gamer ()

  • Das kannst du mit einer schleife machen(da ich mich mit for nicht auskenne hier mit do):

    GML-Quellcode

    1. var i; i=0 do {     draw_text(x,y+i*string_height(array[i]),array[i])     i+=1} until (array[i]=="")


    so sollte es funktionieren.
    das script drawt solange den inhalt des array untereinander(anzahl der strings * höhe des strings) bis einer der arrayelemente keinen ihalt hat(bin mir nicht sicher ob das dann array==o oder array[i]=="" heißen muss).
    Ich habe es nicht getestet aber es sollte funktionieren können :D
    mfg gamer_08
    sry dass es so eingerückt ist(in eine zeile) er macht es mir gerade nicht anders...
  • Da der vorhergehende Code doch etwas suboptimal war da do schleifen ja immer mindestens 1 mal ausgeführt werden, hier ein besserer den ich auch gerade verwende:

    GML-Quellcode

    1. while (global.existing_files[i]!="")
    2. {
    3. draw_text(x,y+i*string_height(global.existing_files[i]),global.existing_files[i])
    4. i+=1
    5. }