|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 24.08.2005, 15:56 Titel: exe in bas zurückwandeln |
|
|
Hi, ich glaub ich hab ein großes Problem.
Ich hab eine bas-Datei in FreeBasic aus Versehen überschrieben die somit jetzt weg ist (0 byte). Das kam, weil ich statt auf Open auf Save As gegangen bin, die Datei wurde demnach nicht geladen, sondern eine leere Datei wurde unter dem alten Namen gespeichert. Ich habe aber zum Glück noch die kompilierte Exe-Datei zu der bas-Datei, so dass ich die bas-Datei widerherstellen kann, wenn es mir möglich ist, die exe-Datei "zurückzukompilieren". Weiß jemand, ob so was überhaupt geht und wenn ja, wie es geht bzw. wo man eventuell ein Programm für so was bekommt? Das ist nämlich wirklich die einzige Möglichkeit die Datei widerherzustellen, denn sie ist ja nicht mal nur gelöscht, sie wurde ja dummerweise überschrieben.
Thx im Voraus.
_________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.08.2005, 16:26 Titel: |
|
|
Hallo.
Leider ist es (fast) unmöglich, aus einer .exe datei eine .bas datei zu machen. Für QBasic gab es da mal ein Programm, aber man hat nie den originalen code. Der "wiederhergestellte" code ist ganz ANDERS. Fang am besten damit an, dass Programm neu zu scheiben. Vielleicht gibt es aber andere methoden.
Mfg
Michael
EDIT: Die igel werden auch immer schneller.
Zuletzt bearbeitet von Michael712 am 24.08.2005, 16:28, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
d.j.peters Gast
|
Verfasst am: 25.08.2005, 01:41 Titel: |
|
|
Hallo Leader4,
wie gross war der Quellcode (ca. Anzahl der Zeilen) und ist es wirklich etwas wichtiges?
Was war das Thema viele stringsachen grafik datei ... ?
Grüsse Joshy |
|
Nach oben |
|
|
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 25.08.2005, 08:29 Titel: |
|
|
Es waren etwa 1200, 1300 Zeilen bei einer Größe von vielleicht etwa 35, 40 KByte.
Das Thema: Es war eine Art Lexikon. Das Programm hatte lediglich einfache grafische Elemente enthalten, für die Benutzeroberfläche (also Line-, Paint- und Coloranweisungen, mehr eigentlich nicht).
Etwa 50 % des Programms waren Bedingungszeilen, das ist eigentlich das wichtigste, was mir nun fehlt. Die Form war:
If W$ = "xxx" Then D$ = "9999"
xxx = ein bestimmtes wort; 9999 = eine bestimmte zahl
Von diesen Zeilen gab es etwa 600, 700 Stück.
Ob es wichtig ist? Also ohne den widerhergestellten Quellcode müsste ich enorm viel Arbeit und Aufwand betreiben, damit das Programm irgendwann mal wieder läuft. Ich glaube nicht, dass ich mir so viel Arbeit noch einmal antue, weil ich das Programm über einen langen Zeitlauf hin und wieder erweitert habe und weiß, wie viel Arbeit das insgesamt ist. Daher weiß ich zur Zeit noch nicht recht, was ich machen soll... eins ist mir aber klar: eine ersetzte Datei kann definitiv nicht mehr hergestellt werden, auch nicht mit Systemwiederherstellung. _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 25.08.2005, 16:08 Titel: |
|
|
Weißt du auch wo man so ein Programm herbekommen kann, wo man diese Bedingungen "rausfiltern" könnte? Das würde mir echt helfen, wenn ich wenigstens diese Programmteile widerhergestellt bekommen könnte.
Danke im Voraus.
PS: Ja, wäre besser die Daten auszulagern. Das dumme ist nur, dass FB bei Save As... noch nicht mal ne Rückfrage startet, ob ich die vorhandene Datei ersetzen will oder nicht... naja, hinterher ist man halt immer klüger. _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
|
d.j.peters Gast
|
Verfasst am: 26.08.2005, 01:43 Titel: |
|
|
Hallo Leader4,
poste mal einen Link auf deine exe Datei wenn ich Zeit habe dann schaue ich mal am Sonntag was zu retten ist.
Grüsse Joshy |
|
Nach oben |
|
|
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 26.08.2005, 07:14 Titel: |
|
|
Danke, das ist sehr nett.
Ich weiß jetzt nicht genau, wie du das mit dem Link meinst, aber wenn du mir deine E-Mail-Adresse gibst oder bei MSN oder ICQ angemeldet bist, schick ich dir das Programm zu und da kannst du in aller Ruhe schaun, was noch zu machen ist.
Grüße von Patrick
Patrick.Arnold@hotmail.de _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
|
d.j.peters Gast
|
Verfasst am: 26.08.2005, 13:30 Titel: |
|
|
Leader4 hat Folgendes geschrieben: | ...Ich weiß jetzt nicht genau, wie du das mit dem Link meinst ... |
Du kanst auf z.B. http://fileanchor.com/ Deine Dateien hochladen und bekommst einen Link auf die Datein wenn ich den dann anklicke wird die Datei auf meinen Rechner herunter geladen.
Grüsse Joshy
PS. Meine eMail Addi müste hier im Profile stehen. |
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 26.08.2005, 23:20 Titel: |
|
|
Ich hab neulich mal so nen Quick'N'Dirty Code gemacht, der alle möglichen Strings aus ner EXE oder sonstwo rausfiltert. Funktioniert natürlich nicht einwandfrei, aber kann einem die Sache erleichtern.
Code: | FileName$ = ""
COLOR 7, 0
CLS
PRINT "ICC FindText v1.00 - (C)2005, Paul Wilhelm (ICC Software) - www.icc-software.de"
PRINT
PRINT "Input file:",
IF FileName$ = "" THEN
INPUT "", FileName$
OutFileName$ = FileName$+ ".txt"
inputted = 1
ELSE
inputted = 0
END IF
IF inputted = 0 THEN PRINT FileName$
PRINT "Output file:", OutFileName$
input "Minimal string length [8]: ", strl$
minlen = val(strl$)
if minlen = 0 then minlen = 8
PRINT
OPEN FileName$ FOR BINARY AS #1: l = LOF(1): CLOSE #1
IF l = 0 THEN
COLOR 4
PRINT "File is empty or doesn't exist."
PRINT "Press any key to exit."
SLEEP
COLOR 7
CLS
END
END IF
PRINT "Proceeding...";
OPEN FileName$ FOR BINARY AS #1
OPEN OutFileName$ FOR OUTPUT AS #2
PRINT #2, FileName$
PRINT #2, date$; " / "; time$
PRINT #2, ""
PRINT #2, "Offset(hex)", " Length(dec)", "Text"
PRINT #2, ""
DIM anz&(0 TO 255)
percentage = 10
start& = 0
filepos& = 0
Text$ = ""
bn& = LOF(1)
maxbuf& = 1024
DO WHILE bn&
IF bn& > maxbuf& THEN buf& = maxbuf& ELSE buf& = bn&
buf$ = SPACE$(buf&)
bn& = bn& - buf&
GET #1, , buf$
FOR a& = 1 TO buf&
c$ = MID$(buf$, a&, 1)
c = ASC(c$)
IF (c >= 32 AND c <= 126) or c$ = "Ä" or c$ = "ä" or c$ = "Ö" or c$ = "ö" or c$ = "Ü" or c$ = "ü" THEN
IF start = 0 THEN start& = filepos&
Text$ = Text$ + c$
END IF
tlen = LEN(Text$)
IF c = 0 AND NOT Text$ = "" THEN
IF tlen >= minlen THEN
FOR b = 0 TO 255
anz&(b) = 0
NEXT b
FOR b = 1 TO tlen
c = ASC(Mid$(text$, b, 1))
anz&(c) = anz&(c) + 1
NEXT b
maxchar = 0
maxanz = 0
FOR b = 0 TO 255
IF anz&(b) > maxanz THEN maxanz = anz&(b): maxchar = b
NEXT b
FOR b = 1 TO tlen
c = ASC(Mid$(text$, b, 1))
IF c = maxchar THEN anzchar = anzchar + 1
NEXT b
IF INT(anzchar / tlen * 100) > percentage THEN
h$ = hex$(start&)
PRINT #2, STRING$(11 - LEN(h$), " "); h$, LEN(Text$), Text$
'sleep
END IF
END IF
Text$ = ""
start& = 0
END IF
NEXT a&
filepos& = filepos& + buf&
LOOP
CLOSE #2
CLOSE #1
PRINT "done."
PRINT
PRINT "Press any key to exit."
SLEEP
COLOR 7, 0
CLS
END
|
_________________
|
|
Nach oben |
|
|
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 27.08.2005, 07:47 Titel: |
|
|
Klasse, danke.
Ich probier es gleich mal aus. Wenn etwas rauskommt, das einen Algorithmus hat, dann kann ich mir vielleicht mit einem kleinen Programm diese bruchstückhaften Strings konventieren oder mir wenigstens beim Neu-Programmieren einige Arbeit ersparen. Ich probiere es gleich mal aus.
Thank You! _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 29.08.2005, 11:47 Titel: |
|
|
Quick'n'dirty, ja
Code: | OPEN FileName$ FOR BINARY AS #1: l = LOF(1): CLOSE #1
IF l = 0 THEN
COLOR 4
PRINT "File is empty or doesn't exist."
PRINT "Press any key to exit."
SLEEP
COLOR 7
CLS
END
END IF |
Hier wird ne Datei erstellt. Besser ist das hier:
Code: | IF OPEN (FileName$ FOR INPUT AS #1) THEN... |
Wenn du OPEN als Funktion einsetzt, wird die Fehlernummer zurückgegeben. Das ist 0, wenn kein Fehler auftritt, ansonsten irgendein wert ungleich null.
Siehe http://www.freebasic.de/r.php?s=OPEN
(recht weit unten im Ref-Eintrag)
Ach ja, und noch was:
Code: | filepos& = filepos& + buf& |
Seit FB v0.13b oder so existieren die sogenannten Shorthands. Du kannst die Zeile abkürzen:
Hat aufs Endprodukt kaum auswirkungen (manchmal ist die Variante trotzdem schneller), aber hauptsächlich sparst du dir Tipparbeit.
Siehe dazu:
http://fb.exp-soft.de/FBtuts.php?zeig=tuts&view=Referenz_Grundlagen-2.~Ausdruecke~und~Operatoren.txt#7
Die beiden Techniken (Shorthands und Variablen-Initiatoren) sind ziemlich praktisch, und sollten deswegen endlich mal bekannt werden Für OPEN-Funktion-Variante gilt wohl das selbe
However, der Post hat wohl sonst nicht viel mit dem Thread zu tun...
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 29.08.2005, 12:04 Titel: |
|
|
Äh... dein Code-Auszug ist mir unbekannt... soll das ne Kurzform für
Code: | variable = variable + variable | bzw für
Code: | variable += variable | sein?
However, es kann gut sein, dass es unter C/C++ Shorthands gegeben hat. _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Zuletzt bearbeitet von Dusky_Joe am 29.08.2005, 12:08, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 29.08.2005, 12:10 Titel: |
|
|
Grade getestet:
Code: | var ++;
Print var
Sleep |
Ausgabe:
Zeile 1:
Expected: '=', found: '+'
(oder braucht man dazu v0.15b? ich hab noch v0.14b) _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 29.08.2005, 13:16 Titel: |
|
|
Dusky du Klugscheißer
Der Code war für QB ausgelegt, da gabs solche Funktionen noch net _________________
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|