string in bestimmte zeile einer txt schreiben..

  • string in bestimmte zeile einer txt schreiben..


    mein tolles spiel velda wächst und wächst. die alte textboxmethode, gefiel mir nicht mehr, weil es zu aufwändig war, jedes textchen irgendwo im code reinzuschreiben. deshalb hab ich jetzt das ganze neu geschrieben und zwar extrem flexibel. der gesamte spieltext wird jetzt aus einer externen txt-datei gelesen. jede textbox eine zeile.

    nun habe ich ein kleines programm gemacht, in welchem ich die texte einzeln abrufen kann. somit kann ich rasch überprüfen, wie der text in die textbox des spieles passt, oder wo ich trennlinien einsetzten soll. nun möchte ich aber den text direkt bearbeiten können... gesagt getan. der text wird wunderbar ausgelesen und kann mittels "get_string" bearbeitet werden. leider schaffe ich es nicht, die textzeile auch wieder korrekt in die datei zu schreiben, ohne das der restliche text gelöscht, bzw. überschrieben wird...

    ich hoffe das ist überhaupt möglich und jemand kann mir helfen. das programm hab ich übrigens angefügt.

    ach ja, wo wir doch gerade dabei sind, weshalb hab ich keine korrekten umlaute (äöü)?

    mfg, belial the diversifying putrefaction [philosuffer]
    Dateien
    • vialog_edit.zip

      (106,91 kB, 115 mal heruntergeladen, zuletzt: )
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • RE: string in bestimmte zeile einer txt schreiben..

    und wie krieg ich den ganzen text der datei in einen string? soll ich etwa jede einzelne zeile auslesen und dann string00 + string 01 + string 02 usw? dann diesen string replace befehl anwenden, den ich jetzt gerade sowieso nicht begreife? hmm... warum muss immer alles so umständlich sein... frauen, geld beschaffen, gamemaker... kanns mir ausnahmsweise nicht mal jemand vorkauen? bitte? :D

    ach ja, wegen den umlauten... hab schon die "all" funktion drinne. liegt das an der schrift (terminal)?
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

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

  • Original von TrunX
    Ob es an der Schrift liegt kannst du ganz leicht in Word oder einem anderem Textprogramm rausfinden.
    Wenn in Word keine Umlaute angezeigt werden, dann hat der Font keine.


    ah ja, klar. ggg. ne, die schrift enthält keine umlaute. zumindest nicht an der entsprechenden stelle. dieses mysterium wäre demnach schomal gelöst. danke.

    und jetzt weiter mit der verflixten hauptfrage dieses freds.
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • Ich würde das ungefähr so machen: wie du schon sagtest alle zeilen per schleife einlesen und aneinander hängen, dann aber, wenn die zeile die ist, die geändert werden soll, den neuen text einsetzen. Ich schreib das mal als pseudoscript:

    Quellcode

    1. argument0=datei
    2. argument1=zeile
    3. argument2=neuer text
    4. file_open_read(argument0)
    5. text="";
    6. for(i=0;i<zeilenzahl;i+=1) //durchlaufe alle zeilen
    7. {
    8. if(i==argument1)
    9. {
    10. zeile=argument2;
    11. file_read_line(); //um die aktuelle zeile zu überspringen
    12. }
    13. else
    14. zeile=file_read_line();
    15. text+=zeile;
    16. }
    17. file_close()
    18. file_open_write(argument0)
    19. file_text_write_string(text)
    Alles anzeigen

    irgendwie so halt ;) die ausformulierung in GML überlass ich dir
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • Du könntest von anfang an alles in ein array speichern, pro index eine zeile. Am ende einfach wieder das array durchlaufen und wieder in die datei schreiben.


    oh mann... grindweh!
    ich werd aus diesem arrayzeugs einfach nicht schlau. hab noch nix funktionierendes zustande gebracht. das ist mir eindeutig zu hoch. die gezielte speicherung einer textzeile in eine textdatei wird wohl wieder eine sache sein, die ich total gefrustet aufgeben muss. das wiederum trübt die motivation am eigentlichen game weiter zu machen und es bleibt wieder 2 monate liegen. nach diesen zwei monaten schau ich wiedermal rein und merke, dass ich mit dem code gar nicht mehr klarkommen. dann bleibts wiederum monate hängen. und irgendwann wirds vergessen und die ganze arbeit war leider wiedermal um sonst. bäh.

    ich hasse den gamemaker.
    danke fürs zuhören.
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • Ich habe das nun mal komplett auf eine Liste umgeschrieben, es sollte nun so funktionieren wie du es wünscht.
    Dateien
    • vialog_edit.zip

      (106,65 kB, 117 mal heruntergeladen, zuletzt: )
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Ich habe das nun mal komplett auf eine Liste umgeschrieben, es sollte nun so funktionieren wie du es wünscht.


    der windapple... mein held. meine muse. mein retter. mein GOTT!!! GOTT DER GÖTTER!!! HERR DES GML!!! geheiligt werde dein name! auf knieen krieche ich vor dir! verbeuge mich, küsse deine göttlichen zehen, wenn du mir die gnade erteilst, diese primitive dankesgeste anzunehmen. der herr sei gepriesen! HALELUJA! WINDAPPLE! HALELUJA!

    hab mir mal 5 minuten zeit genommen, deinen code genauer unter die lupe zu nehmen. so rein theoretisch, war ich ja selbst auch auf dem richtigen dampfer. an der umsetzung hats dann gehapert... bei mir wäre der code mindestens 3 mal so lang geworden. ggg. danke, hast was gut bei mir.

    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇