Einführung in Clipper

Still in use?

Moderator: Moderatoren

Antworten
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Einführung in Clipper

Beitrag von Mirco »

Hallo zusammen,

jetzt habe ich hier den Quelltext eines ERP Programms vor mir, an dem schon Leute gearbeitet haben, da saß ich noch im Kinderwagen ;).

Ich komm aber irgendwie nicht so recht weiter. Ich bin Objektorientierte Programmierung gewöhnt, in denen vieles über Ereignisse abläuft. Die Syntax der Programmiersprachen sei erstmal dahingestellt, aber ich kenne es nur so, dass ich die Oberfläche (also die Präsentationsschicht) aufbaue und dann Eingaben auswerte.

In DOS/Konsolen Programme lief es so, dass ich eine Ausgabe gemacht habe (z.B. Console.WriteLine("Hallo, Drücke die 1 für die Uhrzeit und 2 für das Datum")) und dann habe ich über Console.ReadLine() auf die Eingabe des Users gewartet und diese dann mit IF/Case abgefragt. Bei Windows wird das ganze dann mit den entsrpechenden Events (Button Click usw.) gemacht. Das ist bei Clipper ja aber eh nicht vorhanden.

So, irgendwie kommts mir so vor, als würde das in Clipper nicht ganz so ablaufen ;).

Ich versuche zwar schon in dem Programmierhandbuch von Clipper die Syntax und allgemeine "Herangehensweise" an Clipper zu verstehen, aber irgendwie ist das ganze nicht so gut erklärt. Da wird schon von Arrays etc. gesprochen, bevor einfache grundlegende Sachen wir Aus-und Eingabe erklärt werden. Tutorials mit einer "schnell" Einführung finde ich nicht. Verständlich, da ich etwas suche / brauche, dass mir eventuell die Unterschiede zu den "modernen" Programmiersprachen aufzeigt.

Was möchte ich nun von euch? ;). Es wäre suuuper, wenn einer von euch vielleicht doch Literatur zu dem Thema hat. Oder am besten vielleicht mal ein paar kleine Clipper Programme zeigen kann, in denen die rudimentären Funktionen gezeigt sind (Wie mache ich Ein-/Ausgaben, Menüs etc.). Kommentare wären vielleicht nicht schlecht, aber solange das Programm nicht gleich n ERP ist, werd ich mich wohl auch selber einlesen können.

Hier sei gesagt, dass ich kein Clipper Profi werden will / muss. Ich muss das Programm nur einigermaßen verstehen, um später Support zu leisten (Kunde ruft an -> "In der Stammdatenverwaltung stimmen die Telefonnummern nicht" -> Ich kann gucken woran es liegt und Fehler eventuell beheben). Die Weiterentwicklung ist in XBase++, wo ich schon mehr Hoffung habe :-).

Vielen Dank nochmal

Mirco
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Einführung in Clipper

Beitrag von brandelh »

Hallo Mirco,

dBase / Clipper hatten für die Zeit in der sie entstanden DAS geniale Eingabe Konzept überhaupt ;-)
Während man bei "normalen" Konsoleprogrammen lediglich eine Eingabe bekam, die man auswerten musste,
konnte/kann man seit Clipper 5.0 "objektorientiert" auf ein Ein-/Ausgabesystem zugreifen: @ SAY GET ...
Intern wird hierfür ein Array verwendet, das standardmäßig PRIVATE -> sichtbar im aktuellen und allen aufgerufenen
Programmteilen. Wenn man dies lokal braucht (z.B. weil man eine Hilfseingabe macht), kann man einfach
ein neues Array LOCAL definieren und schon ist es unabhängig.
Die Xbase++ Hilfe ist hier nahezu identisch mit dem Clipper 5.x Handbuch (sinngemäß und funktional, nicht wörtlich ;-) )

Code: Alles auswählen

local GetList := {}  // lokales GET verwenden
local cName := space(20)

@ 10,20 say "Bitte Name eingeben:" get cName valid ! empty(cName)
...
read                // im Prinzip die "Eventloop" für die GET Objekte
...
if lastkey = K_ESC // in inkey.ch definierte Konstante für ESC Taste
  ...
else
  ...
Besondere Stärken sind hier einmal die VALID - Eingabevalidierung, z.B.
über eine eigene Funktion, sowie die Möglichkeit der EINGABEMASKE (PICTURE) ...

Du solltest in der Hilfe @ ... Befehle und GET() lesen.
MENU TO diente zum Aufbau von Menüs, auch verschachtelten.
AChoice() wurde gerne eingesetzt wie eine Listbox.
browse() / tBrowse() zeigen Datensätze in Tabellenform an.

Auf der Devcon in Berlin habe ich einen Vortrag über Clippermigration gehalten.
Hier habe ich das Beispielprogramm in verschiedenen Stufen der Anpassung abgelegt,
dort kannst du einige Clipper-Eingabesysteme sehen.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Einführung in Clipper

Beitrag von brandelh »

Gruß
Hubert
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Re: Einführung in Clipper

Beitrag von Lewi »

Hallo Mirco,
es gab für Clipper ein quaisi Standardwerk: "Fortgeschrittene Techniken der Clipper-Programmierung" von Stephen Straley und ist im Addison-Wesley Verlag erschienen (1990). Ich habe dieses Buch immer noch im Regal stehen.

Du solltest Dir dieses Buch besorgen. Innerhalb dieses Buches werden Kommandos und Funktionen mit dazugehörigen Hintergrundinformationen beschrieben sowie grundsätzliche Techniken der Clipperprogrammierung.

Gruß, Olaf
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: Einführung in Clipper

Beitrag von Mirco »

Super, vielen Dank Ihr beiden. Werd mir das Programm mal anschauen und gucken, ob wir das Buch hier irgendwo liegen haben.

Gruß Mirco
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Einführung in Clipper

Beitrag von Jan »

Ansonsten kann ich die Bücher von Ralf Saborowski wärmstens empfehlen. Schau mal hierhttp://www.amazon.de/s/ref=nb_ss_b?__mk_de_DE= ... ki&x=0&y=0 (bei ebay gibt es gerade nichts von ihm). Mir haben die damals enorm geholfen, mich in die Materie einzuarbeiten, und die waren auch immer ein gutes Nachschlagewerk.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten