Ergebnis 1 bis 9 von 9

Thema: [RMXP / RGSS]: Datei kopieren...?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    Die einfachste Möglichkeit eine Datei zu kopieren wäre es einfach sie zu öffnen und die Bytes in die neue Datei schreiben.
    Könnte (in Pseudo-code) etwa so aussehen:
    Code:
    quelle = open(quelldatei, 'r')
    target = open(zieldatei, 'w')
    repeat
      byte = quelle.read()
      if byte==EOF
       break
      else
       target.write(byte)
      end
    end
    Alternativ gibt es vermutlich eine "Datei kopieren"-Funktion in der Windows-API und auf diese kannst du im XP zugreifen (dazu gibt es die Win32API-Klasse in Ruby).
    Da es allerdings um eine Schriftart gehst, wirst du mMn um die Windows-API nicht herumkommen, da ein Kopieren der Datei in den Fonts-Ordner alleine nicht ausreicht um die Schriftart im XP nutzbar zu machen. Ich weiß das irgendwann mal hier jemand genau dieses Problem hatte und ich habe damals eine API-Funktion ausgegraben, die die Font bei Windows registriert. Die Kombination, "Datei kopieren" und dann "Schriftart registrieren" war genug um die Schriftart nutzbar zu machen.
    Leider finde ich den Thread nicht mehr aber ich hab mal in der WinAPI-Referenz rumgestöbert:
    CopyFile
    AddFontResource
    Wie du die Win32API-Klasse nutzt um diese Funktionen aufzurufen, erfährst du in der Ruby-Dokumentation (Nicht die in der Hilfe-Datei des Makers, such eine vollständige im Netz)

    Edit:
    Tatsächlich würde ich ausprobieren ob das AddFontResource am Anfang ausreicht, dann muss der Spieler nicht seinen Fonts-Ordner mit Dateien zukleistern, von denen er später nicht mehr weiß wo sie herkommen.
    Natürlich gebietet der gute Ton es dann auch, das du beim Beenden des Spiels die Font-Resource wieder entfernst. Klick dich in der API-Referenz mal rum, es sollte auch sowas wie "RemoveFontResource" geben.

    Geändert von MagicMagor (11.01.2011 um 14:35 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •