FreeBasic: Datei anhängen

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Allgemein[Bearbeiten]

Möglichkeiten[Bearbeiten]

Gemeinsame Vorteile[Bearbeiten]

  • Weniger Dateien
  • Die Dateien sind für normale Anwender nicht findbar

Gemeinsame Nachteile[Bearbeiten]

  • Die Dateien sind für Normale Anwender nicht findbar

WinAPI AddResource[Bearbeiten]

Kennt jemand den richtigen Namen + einen Link?

Alternate Data Streams[Bearbeiten]

Grundlagen[Bearbeiten]

Eine handvoll Vorteile gegen eine Schubkarre voll Nachteile.

Vorteile[Bearbeiten]

  • einfach einzubauen

Nachteile[Bearbeiten]

  • braucht  NTFS
    • geht also nicht mit CD/Disketten
  • ADS gilt als Sicherheitsrisiko

Selbst programmiert[Bearbeiten]

Grundlagen[Bearbeiten]

Eine Exe-Datei ist ziemlich einfach aufgebaut.

Wenn du irgendwas anhängen willst, musst du nur ans Ende der Ex-Datei und dort kannst du problemlos schreiben.

Da gilt das Prinzip: Was nicht aufgerufen wird, macht auch keinen Ärger.

Vorteile[Bearbeiten]

Nachteile[Bearbeiten]

  • bei fixen Adressen wird das Erweitern erschwert

Datei Anhängen Tool[Bearbeiten]

 dim a as ubyte
 dim lang as uinteger
 
 Input " Name der Exe-Datei? ", exe$
 Input " Name der anderen Datei? ",file$
 
 open exe$ for binary as #1  'Die Exe-Datei öffnen
 open file$ for binary as #2 'Die andere Datei öffnen
 
 lang=lof(1) 'Exe-Dateiende
 
 ?     " Die Exe-Datei ist "; lang; " Bytes Lang."
 Input " Ab welcher Byte-Nummer soll die Datei anhaengt werden? ",ort 'Diese Zahl muss unbedingt grösser als die Länge der Datei sein!
 
 if ort<=lang then
     color 4
     ? " Sie schreiben vor das Datei-Ende!"
     ? " Dadurch kann die Exe Datei beschaedigt werden!"
     ? " Vorgang abgebrochen"
 else
     ? " Vorgang gestartet"
     seek 1,ort 'Gewünschten Ort ansteuern
      
     do 'Anhängen
         get #2,,a
         put #1,,a
     loop until eof(2)
     ? " Vorgang beendet"
 end if
 sleep

Wieder abhängen[Bearbeiten]

(Hier an diese Datei wird auch die andere Datei angehängt)

 
 Open Command$(0) for binary as #1 'mach dich selbst auf
 
 adr=18000        'die Adresse die bei Anhänger eingegeben
 outfile$="test2" 'Hier rein geht die Ausgabe
 
 kill outfile$
 
 open outfile$ for binary as #2
 
 seek 1,adr
 
 do 'Abhängen
     get #1,,a
     put #2,,a
 loop until eof(1)
 
 end 'ende

Beispiel mit Bild[Bearbeiten]

 dim bild as any ptr
 
 Open Command$(0) for binary as #1 'mach dich selbst auf
 
 adr=200000           'die Adresse die bei Anhänger eingegeben
 outfile$="bild2.bmp" 'Hier rein geht die Ausgabe
 
 kill outfile$
 
 open outfile$ for binary as #2
 
 seek 1,adr 'Auf Adresse einstellen
 
 do 'Abhängen
     get #1,,a
     put #2,,a
 loop until eof(1)
 
 close 'vor dem Laden unbedingt schliessen
 
 'Aber hier kann das Bild normal geladen werden
 screen 18,32
 
 datei$="bild2.bmp"
 
 bild=IMAGECREATE(100,100)
 
 bload datei$,bild
 
 put (100,100),bild
 
 sleep 5000,1
 
 kill outfile$ 'Nach Gebrauch entsorgen
 
 end 'ende