Blackbox
BlackBox
Eine BlackBox beschreibt im Technischen Gebiet eine Schaltung deren wirkung nur bekannt ist und daraus schlussfolgerungen auf den Inhalt gemacht werden. In der Programmierung ist es so ähnlich, man hat eine Funktion oder ein Ablauf und versucht dann durch Reverse Engeniering den Inhalt selber zu verwirklichen.
Ein Beispiel wäre folgendes:
function extractfilename(file:string):string; begin //Unbekannt result:=rueckgabewert; end;
Nun fangen wir an alles von hinten aufzurollen und eventuell ein grossteil des Codes zu bekommen.
function extractfilename(file:string):string; var //Variable zum zwischenspeichern und bearbeiten des strings filename:string; begin filename:=file; //Unbekannt result:=filename; end;
Wir wissen nun, dass der fehlende Code den Dateinamen aus dem String kopiert. Des weiterem ist uns bekannt das ein Dateiname am Ende einer Pfadhierachy steht und die Pfade durch ein '/' oder '\' Zeichen getrennt werden. Das bedeutet wir suchen das letze '/' oder '\' Zeichen im String und kopieren alles von der Position bis Stringende.
function extractfilename(file:string):string; var filename:string; ind:integer; begin filename:=file; for ind:=high(filename) downto 0 do if (filename[ind]='/') or (filename[ind]='\') then break; copy(filenam,ind,length(file)-ind); result:=filename; end;