Blackbox

Aus DGL Wiki
Version vom 31. Mai 2005, 21:05 Uhr von TAK2004 (Diskussion | Beiträge) (Definition von Blackbox und ein Beispiel)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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;