AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein programm, das eigenen Quellcode ausgibt?
Thema durchsuchen
Ansicht
Themen-Optionen

programm, das eigenen Quellcode ausgibt?

Ein Thema von Illuminator-23-5 · begonnen am 12. Nov 2003 · letzter Beitrag vom 30. Nov 2003
Antwort Antwort
Seite 3 von 4     123 4      
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#21

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 09:56
Und du bist sicher, dass Du nicht einfach die Aufgabenstellung falsch verstanden hast.
Folgende Einwände:
1. ES ist unmöglich. Denn definitv sind zumindest viele Bezeichner einfach durch Adressen ersetzt, die sind weg nach dem Compilieren einfach nicht mehr da.
2. Eine einfache exe weiß von dem Quellcode nichts mehr, um das revers zu matchen, müßte ... klar wie es jetzt weitergeht, nicht?

Güsse
Woki
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#22

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 11:06
Es geht doch garnicht darum die Source aus dem EXE herauszuziehen.
Ein EXE soll eine Ausgabe machen, die genau ihrer eigenen Source entspricht.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#23

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 11:13
Zitat von Robert Marquardt:
Ein EXE soll eine Ausgabe machen, die genau ihrer eigenen Source entspricht.
Schön, dass Du es noch einmal so klar herausgestellt hast, Robert. Mithilfe dieser Aussage behaupte ich, dass es ohne eine "externe Quelle", also ohne writeln vor der jeweiligen Zeile oä, unmöglich ist, weil dies zu einem rekursiven Paradoxon führen würde:
Angenommen der Code lautet i:= 42; und an einer beliebigen Stelle des Codes würde nun eine entsprechende Zeile Ausgabe('i:= 42'); stehen, gehört eben diese Zeile strenggenommen ebenfalls zum Code und müsste ebenfalls ausgegeben werden...

Folglich muss der Code dem EXE in "externer Form", zB gelinkt als Ressource, mit Verweis auf das Source-File, öä zur Verfügung stehen, damit hier lediglich etwas in der Form Ausgabe(SourceAusExternerQuelle); steht.

Es hoffe, es wurde klar, was ich meine...
gruß, choose
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#24

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 14:19
Zumindest bei C sollte der Präprozessor das Paradoxon aufbrechen koennen.
Ich kann mich schwach erinnern das bei den IOCCC-Programmen was dabei war.
http://www.ioccc.org
  Mit Zitat antworten Zitat
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#25

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 14:41
Also mal erstens:
Die anderen haben die ganze Zeit dein Problem verstanden und versucht dir klar zu machen, dass man aus ner .exe-Datei nicht den Delphi-Quellcode machen kann !!!

Sowas ist 100% unmöglich.

Deine Lösung:
Nachdem du mit dem Programm fertig bist, kopierst du den Quelltext und speicherst ihn in ne Variable/Konstante/..., die du dann im Programm an jeder Stelle ausgeben kannst.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#26

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 14:42
Es ist lange her, dass ich mit C gearbeitet habe, aber allgemein sollte soetwas nach meinem Empfinden nur dann funktionieren, wenn
  1. der Preprozessorer selbst nicht oder nur endlich rekursiv parst oder
  2. mit in C üblichen Anweisungen an den PP (#define, #ifndef, #endif) gearbeitet wird, um das zu verhinden

In Delphi bekomme ich bei diesem Konstrukt
Delphi-Quellcode:
unit MyUnit;
interface
implementation
  {$i MyUnit.pas}
end.
einen "Fatalen-Fehler"
Zitat von Delphi-Compiler: 260. Rekursive Include-Datei <Name>:
Die Direktive $I wurde zur rekursiven Einbindung einer anderen Datei verwendet. Sie müssen sicherstellen, daß alle eingebundenen Dateien keine Rekursionen enthalten.
gruß, choose
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#27

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 16:17
nun, das problem ist folgendes:

wenn ich den quellcode in eine Konstante speichere, muss ich die definion der Konstante auch ausgeben! das wär dann sozusagen eine unendliche rekursion!

z.B:
program main; const ausgabe = 'program main; const ausgabe = '...'; begin writeln(ausgabe); end.'; begin writeln(ausgabe); end. beim ... muss eben der inhalt von ausgabe sein!
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#28

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 16:26
Hallo Illuminator-23-5,
das ist ziemlich genau das, was ich mit meinem Posting von heute, 11:13 meinte.

Bitte kläre doch noch einmal die Problemstellung mit Deinem "info-lehrer", falls es dann noch ein "wirkliches" Problem geben sollte, können wir es ggf lösen.
gruß, choose
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#29

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 18:43
Ich tippe mal auf diese Idee:
Zitat von Brüggendiek:
1. Den eingegebenen Quellcode - dann ist das ganz einfach. Bei einer Konsolenanwendung muß man mit Readln die Quelldatei zeilenweise einlesen und mit Writeln auf dem Bildschirm ausgeben. Ein Windows-Programm könnte das Ganze sogar mit men Memo erledigen - das wäre dann ein 2-Zeiler!
Das hört sich nach einer typischen Schulaufgabe zum Thema "Dateien öffnen, zeilenweise einlesen und anzeigen" an. Alles andere wäre, wenn ich mal so ein Fazit ziehen darf, wohl nicht machbar. Ich denke also, das Programm (*.dpr) soll sich selbst öffnen, usw. (wie Dietmar schon schrieb). Die kompilierte EXE greift damit auf den (hoffentlich) beiliegenden Quellcode zu - und schon ist die Aufgabe gelöst.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#30

Re: programm, das eigenen Quellcode ausgibt?

  Alt 13. Nov 2003, 18:56
Rekursion? Was hat denn das damit zu tun? Ich meine, du müsstest das Programm ja so dekompilieren, dass du alles wiederbekommst. Und das ist schlicht weg nicht möglich, wie hier schon mehrmals gesagt wurde. Ich bezweifle auch, dass euer Info Lehrer solchen Schwachsinn von euch verlangt. Vielleicht hat er einfach gemeint, ihr sollt den Source bevor ihr das Prog kompiliert, einfach irgendwie speichern und dann das Programm so gestalten, dass er aufgerufen wird. (txt, resource, wie schon öfters erwähnt) Da gibts Probleme mit Variablennamen usw und sofort. Das einzige, was mit Dekompilieren glaub ich möglich ist, ist, die Prozedurköpfe zu bekommen, aber nicht mal da bin ich mir sicher...

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz