alle txt dateien anzeigen

  • alle txt dateien anzeigen

    hallo
    wie kann ich alle txt dateien aus einem ordner auslesen, und dann die namen abspeichern?

    ich hab das bis jetzt so:
    im create event des auslese-objectes

    nr=2
    txtname[1]=file_find_first(working_directory + "\maps\*.txt",0)

    while txtname[nr] !=string("")
    {txtname[nr]=file_find_next();nr+=1}
    if txtname =string("")
    {file_find_close();search=0}

    kommen tut aber ne fehlermeldung:

    ERROR in
    action number 3
    of Create Event
    for object obj_filechooser:

    Error in code at line 4:
    while txtname[nr] !=string("")

    at position 8: Unknown variable txtname or array index out of bounds

    ich kenn mich mit arrays, also diesen [] eckigen klammern noch gar nicht aus, stimmt das überhaupt so wie ich das gemacht hab?
    ich hab mir das so vorgestellt, dass die erste txt-datei unter txtname[1] gespeichert wird die zweite txt under der variable txtname[2] usw.

    mfg
  • nein das funktioniert jetzt shcon mal gut.

    jetzt hab ich aber noch ne andere frage:
    wie kann ich fragen ob die variable txtname[1] existiert, oder ob die variable txtname[467] existiert?

    also damit gehts nicht:

    if (variable_local_exists('txtname[1]')==true)
    {draw_text(100,100,string(txtname[1]))}
  • nein ich glaube du hast das ein bischen falsch verstanden...

    nach dem einlesen der dateien, habe ich viele txtname variablen die alle einen string mit dem namen der txt-datei haben also zbs wenn sich 5 txt-dateien im ordner befinden.:

    txtname[0]=wasweißich.txt
    txtname[1]=waghghgfh.txt
    txtname[2]=wghfgf.txt
    txtname[3]=wasdjkhjhjhfa.txt
    txtname[4]=wktifiikd.txt

    im draw event kann ich nicht einfach schreiben, draw_text(100,100,string(txtname[5])), weil die ja nicht unbedingt existieren muss, da es ja auch sein kann, dass nur die variablen txtname[0-4] existieren.
    darum muss zuerst gefragt werden ob diese variable existiert, bevor sie gedrawt wird.
  • Wieso? Er hat genau deine Frage beantwort. nr ist ja anscheinend die Größe des Arrays. In einer If-Abfrage sähe das also so aus:

    GML-Quellcode

    1. if(nr>=5) {
    2. draw_text(100,100,string(txtname[5]));
    3. }


    Wenn du alle zeichnen willst kannst du das mit einer Schleife:

    GML-Quellcode

    1. for (i=0;i<nr;i+=1) {
    2. draw_text(100,100+16*i,string(txtname[i]));
    3. }


    Falls ich deine Frage nicht beantworte, gib bitte eine detailreichere Auskunft über dein Problem oder was du machen willst.
  • sry ich hab deine ausfürhrung vorher nicht ganz gecheckt, du hast recht nr gibt ja schließlich eh die anzahl der txts an.
    danke

    passt zwar nicht zum thema aber ich hab noch ne klitze kleine frage:

    wie kann ich nur einen teil eines strings drawen?
    sprich das ".txt" am schluss nicht mehr dazuschreiben also, nur blaballa statt blaballa.txt?

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

  • Benutzer online 1

    1 Besucher