Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Migration von Clipper auf Xbase

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Antworten
bendixen
Rookie
Rookie
Beiträge: 10
Registriert: Mi, 27. Jun 2012 12:35

Migration von Clipper auf Xbase

Beitrag von bendixen » Mi, 27. Jun 2012 12:43

Ich bin auf der Suche nach einem Xbase-Enwickler, der vorab testweise eine Clipper-Anwendung auf Xbase übersetzt.
Wer kann mir helfen? Bitte Antwort auf PM.

UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2450
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von UliTs » Mi, 27. Jun 2012 15:32

Hallo Bendixen,

um welche Clipper-Version handelt es sich?
Ist es reiner Clipper-code?
Reicht es, zunächst die Anwendung im Text-Modus mit xBase++ zu übersetzen?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück

bendixen
Rookie
Rookie
Beiträge: 10
Registriert: Mi, 27. Jun 2012 12:35

Re: Migration von Clipper auf Xbase

Beitrag von bendixen » Mi, 27. Jun 2012 17:05

Es handelt sich um Clipper 5.2D und der reine Textmodus würde erstmal reichen.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von brandelh » Do, 28. Jun 2012 9:12

Hi,

wenn du wenige externe Bibliotheken verwendet hast ist das recht einfach.

In der Wissensbasis habe ich meinen Vortrag zur Devcon 2007 zur Migration im Textmodus (MIG_01) veröffentlicht.
Vom ersten Beispiel (so einfach wie möglich) bis zum letzten Beispiel (mit XbpCrt() und GUI=YES Schriftart setzen, GUI drucken etc)
dreht sich alles um die Migration und im Dokument wird erklärt worauf man achten muss.

Oder hast du noch kein Xbase++ ?

Es gibt eine Testversion von Alaska, damit könntest du schnuppern.
Gruß
Hubert

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von satmax » Di, 17. Sep 2013 22:01

Hallo,

ich habe da auch noch immer eine CLipper 5.2 App am Hals und suche eine Möglichkeit diese mit halwegs vertretbarem Aufwand unter Win64 zum laufen zu bringen. Das Problem dürfetn die verwendeten Zusatzlibs sein, hier die wichtigsten:

Comix
CLWindows
CLTools
Netto
Nanfor

Schafft man das mit XBase ++ und XbToolsIII ?

MfG
Markus
Gruß
Markus

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von brandelh » Di, 17. Sep 2013 22:15

Comix - keine Ahnung
CLWindows - sagt mir nichts
CLTools - das entspricht im Prinzip der XbToolsIII, einige Funktionen sind auch schon in Xbase++ direkt enthalten, aber manche gehen nicht.
Netto - sagt mir nichts
Nanfor - die gibt es doch im Quellcode oder ?

Es hängt sehr stark davon ab, was man tatsächlich damit gemacht hat !

Ich habe früher viel die Fensterfunktionen von CLTools verwendet, mit Xbase++ (zunächst ohne die XbToolsIII, die kamen erst später) bin ich einfach hin und habe den Bildschirm gespeichert, getlist local gesetzt und am Ende wieder den Bildschirm zurückgesetzt. Da Xbase++ (wie alle 'normalen' Win32 Bit Anwendungen) genug Speicher zur Verfügung haben ist das kein Problem.
Alles was Dateihaltung und Indexe angeht, würde ich die Daten exportieren und neu in FOXCDX oder besser SQL (z.b. mit SQLexpress) verwenden. Mit jeder neuen 'Innovation von M$' wird filebasiertes sharen problematischer ... :angry5:
Alles was Drucken angeht, entweder einen Reportgenerator, XbpPrint() (pur) oder meine Druckerklasse nutzen, hier kommt es sehr auf die Anforderungen an.

Am Besten also alle/einzelne Tools aus dem LINK-Baum herausnehmen und nach "fehlenden Funktionen" suchen.
Dann ergründen, für was die wohl gut sind, möglichst verstehen und mit Xbase++ nachbauen oder Ersatz suchen. OT4CB ist hier eine große Hilfe.

Grundsätzlich stimmt es aber schon, dass einige - hardwarenahe Sachen - einfach nicht mehr unter Win32 Bit gehen, die müssten aber mittlerweile auch von der CMD Box geblockt werden.
Gerade was Drucken angeht ist vieles einfacher und standadisierter geworden.

Marshallsoft sollte man auch nicht vergessen wenn man TCPIP / COM Bibliotheken braucht.

PS: zur NOT geht aber auch DOSBOX installieren und einfach Clipper weiter nutzen :D
Gruß
Hubert

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von satmax » Di, 17. Sep 2013 22:58

Hallo Hubert,

ja, einiges von den Funktionen lässt sich sicher simpel nachbilden. Aber geht so etwas auch noch:

Code: Alles auswählen

function WAlert (cMsg, aSel, xColor, nDefault)

  local nLenMsg := 0, nLenSel, nNrSemi, nRow, nCol, oWin, nID, ;
       	cColor, cButtColor := NIL, nRet := nDefault, cRet := "", ;
	aMsgRows := {}

  if ( xColor == NIL )
    cColor     := iif ( IsColor(), "n/w,n/w,n/w,,n/w,w+/w,w+/w,n", ;
                                   "w/n,n/w,,,w/n,w/n")
    cButtColor := iif ( IsColor(), "w+/w,w+/w,,,n+/w,n/w", ;
                                   "w/n,n/w,,,*w/n,n/w")
  elseif ( ValType (xColor) == "C" )
    cColor     := xColor
  elseif ( ValType (xColor) == "A" )
    cColor     := xColor[1]
    cButtColor := xColor[2]
  end

  TokEval (cMsg, {|x| AAdd (aMsgRows, x)}, "C", ";")
  nNrSemi := Len (aMsgRows) - 1

  AEval (aMsgRows, {|x| iif ( (nLenMsg < Len (x)), nLenMsg := Len(x), ) } )
  nLenMsg += 4

  nLenSel := 4
  AEval (aSel, {|x| nLenSel += (Len (x) + 2)})
  nLenMsg := Max (nLenMsg, nLenSel)

  nID := 1500 + Len (aSel)

  oWin := WindowNew ( (Sc_MaxRow() - (nNrSemi + 5)) / 2, ;
                      (Sc_MaxCol() - nLenMsg) / 2, 5 + nNrSemi, ;
                      nLenMsg, nGraphics, cTitle, ;
                      WC_EraseBackground + WC_MessageBorder + ;
                      WC_TitleBar + WC_Shadow + WF_Visible + ;
                      WF_Activate, nID, NIL, NIL, NIL, cColor)


  nRow := 1
  AEval (aMsgRows, {|x| SetPos (nRow, (nLenMsg - Len (x)) / 2) ,;
                        DispOut (x, cColor), nRow ++ } )

  @ MaxRow() - 1, 0 to MaxRow() - 1, MaxCol() + 1 color cColor

  nRow := MaxRow ()
  nCol := (nLenMsg - nLenSel) / 2 + 2

  open dialog

  AEval (aSel, ;
    {|x| GPushButNew (GetList, nRow, nCol, nRow, nCol + Len (x) + 1, x, ;
                      {|w| cRet := w:title, w:owner:interaction(I_Leave)}, ;
                      NIL, NIL, WF_Visible + WF_Graphical, NIL, cButtColor), ;
         nCol += (Len (x) + 3) } )

  WShow( .t.)
  dialog modal
  WClose ()

  if ( EveExitState() == I_Escape)
    nRet := 0
  else
    nRet := AScan( aSel, Trim (cRet))
  end

return nRet
Wobei das kann man sicher simpel nachbauen, habe früher auch viel mit savescreen() gearbeitet, vor den Tools.... ;) Comix ist im Prinzip Foxpro, ich denke bei ALaska gelesen zu haben das cmx aktuell unterstützt wird. Später dann auf SQL umstellen.

Mit dem Drucken müsste ich mir auch noch etwas überlegen. Für Reports (Auswertungen) habe ich schon eine Lösung, ich brauche noch etwas für normale Formulare. Aktuell habe ich da selbst was geschrieben. Die Definition steht in einer Textdatei. Aufgebaut mit Abschnitten, das sieht dann in etwa so aus:

Code: Alles auswählen

POSITION
{07m->eliteein}{00substr(aufakt->arttext,1,35)}{47IF(EMPTY(aufakt->menge)," ",str(aufakt->menge)+" "+aufakt->eh)}{80STR(aufakt->steuersatz,2,0)}{84STR(aufakt->vk)}{00m->eliteaus}
END

POSEHPREIS
{07m->eliteein}{00substr(aufakt->arttext,1,35)}{47IF(EMPTY(aufakt->menge)," ",str(aufakt->menge)+" "+alltrim(aufakt->eh))}{67STR(aufakt->EH_PREIS)}{80STR(aufakt->steuersatz,2,0)}{84STR(aufakt->vk)}{00m->eliteaus}
END
Das müsste schon zum umstellen gehen. Würde mir aber sicher auch Deine Druckerklassen ansehen.
Gruß
Markus

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von satmax » Di, 17. Sep 2013 23:01

brandelh hat geschrieben: Am Besten also alle/einzelne Tools aus dem LINK-Baum herausnehmen und nach "fehlenden Funktionen" suchen.
Dann ergründen, für was die wohl gut sind, möglichst verstehen und mit Xbase++ nachbauen oder Ersatz suchen. OT4CB ist hier eine große Hilfe.

Was meinst Du mit OT4CB? Goggle hilft da auch nicht weiter... ;)

Gruß
Markus
Gruß
Markus

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von satmax » Di, 17. Sep 2013 23:04

brandelh hat geschrieben: PS: zur NOT geht aber auch DOSBOX installieren und einfach Clipper weiter nutzen :D
DOS-Box ist nett, geht aber bei mir nicht. Ich verwende PSCRIPT (von DOS auf Windows drucken) und VOUCH (DOS-Windows Zwischenablage). VMWare und Virtual PC haben auch so Ihre zicken.

Gruß
Markus
Gruß
Markus

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10579
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Migration von Clipper auf Xbase

Beitrag von AUGE_OHR » Di, 17. Sep 2013 23:06

satmax hat geschrieben:Das Problem dürfetn die verwendeten Zusatzlibs sein, hier die wichtigsten:
Comix -> es gibt zwar CDXDBE_COMIX für Cl*pper v5.3(!) aber das wäre nicht exakt das selbe.
die Comix Version für v5.2d ist eher wie SixDrive und deshalb CDXDBE_SIX
Problem : es gibt nicht alle Ord*() Funktionen gibt es nicht unter Xbase++

CLWindows -> Huggle Tools ... die "Windows" Geschichte ist ähnlich WOPEN aus den Tools.
im Alaska Forum "public.third-party-products", 14. Mai 2004 unter dem Thema "xHuggle" findet man was.
hier im Forum gibt es auch noch einen Thread dazu http://www.xbaseforum.de/viewtopic.php?f=2&t=2826

CLTools -> sind damit die Cl*pper Tools oder die von Huggle gemeint ?

Netto -> Novell NetWare ...

Nanfor -> Nanforum LIB ... ASM Routinen ...
satmax hat geschrieben:Schafft man das mit XBase ++ und XbToolsIII ?
Nein
satmax hat geschrieben:Was meinst Du mit OT4CB? Goggle hilft da auch nicht weiter...
ot4xb von Pablo Botella http://www.xbwin.com und dann Forum
satmax hat geschrieben:VOUCH
von Bedi Pritpal ?
gruss by OHR
Jimmy

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von satmax » Di, 17. Sep 2013 23:16

Netto und Nanfor ist sicher einfach zu ersetzen, da verwende ich nicht mehr so viel.
AUGE_OHR hat geschrieben:
satmax hat geschrieben:VOUCH
von Bedi Pritpal ?
Ja.

Gruß
Markus
Gruß
Markus

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von brandelh » Mi, 18. Sep 2013 9:13

"ot4cb" war ein Tippfehler, OT4XB siehe hier: http://www.xbwin.com/

Tokens kann man mit OT4XB zerlegen. Formulare (auch komplexe) kann man mit meiner Druckerklasse gut erstellen, einfach herunterladen und ansehen.
ALERT() als Funktion kann CRT Eingaben machen, aber was genau du oben tust weiß ich nicht.

Grundsätzlich geht alles umzusetzen, von dem man weiß wie es (manuell) geht.
Wenn du aber eine Funktion als Blackbox nutzt und nicht weißt, was sie macht, dann könnte das problematisch sein.

Bei der Umstellung auf Xbase++ kann man das einfach übernehmen, was schnell geht, bei allem anderen (oder grundsätzlich) sollte man sich fragen, was noch zeitgemäß ist und wie man es besser machen könnte.
Gruß
Hubert

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von Rolf Ramacher » Mi, 18. Sep 2013 11:35

Hallo Markus

Aus meiner Erfahrung heraus. Ich habe damals von diesen alten zoepfen abgetrennt. Nix mehr ntx , comix, sdlect , nr
Direkt in gui. War zwarviel arbeit aber sonst packst du das ganze 2mal an
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 252
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2700 Wiener Neustadt
Kontaktdaten:

Re: Migration von Clipper auf Xbase

Beitrag von Hans Zethofer » Mi, 18. Sep 2013 12:10

Ich bin auf der Suche nach einem Xbase-Enwickler, der vorab testweise eine Clipper-Anwendung auf Xbase übersetzt.
Testweise - kann ich mir nicht vorstellen. [-X
Wenn Fremdbibliotheken eingebunden sind kannst du nur Dummie-Prg zu den Funktionsaufrufen machen um zu sehen
ob überhaupt einmal ein "Exe" rauskommt, aber das sagt dir überhaupt nichts über den Aufwand und die Möglichkeiten aus.

Entweder alles oder nichts. :?
Alleine schon die Analyse ob und mit welchem, Aufwand sich der Source zu einem EXE kompilieren läßt ist recht aufwendig.
Desweiteren ob alles dann auch noch richtig abläuft und die korrekten Ergebnisse liefert erfordert einen Kunden der bereitwillig ist
die neu übersetzte Applikation "komplett und kompetent" durchzutesten. (Ich meine so ein Projekt entspricht einer Neuentwicklung
obwohl vielleicht bestehender Code ganz/teilweise verwendet wird)

Ein mehrmonatiger Parallelbetrieb ist sicher notwendig und die meisten haben dafür keine Zeit.
Auch ist die Frage ob heute vieles nicht durch neue Techniken ersetzt werden kann.
Module, die auch gar nicht mehr verwendet werden, kann man entfernen - nur wer weiß ob das keine Sideeffects auslöst.

Wir haben derzeit ein großes Projekt am Start, daran arbeiten 2 Mann schon einige Zeit. Ende ist aber absehbar.
Die Kosten für den Kunden liegen sicher in einem Bereich wo sich es jemand wahrscheinlich 2 x überlegen wird.
Aber dem Kunden ist die Umstellung das ganze Wert (spezielle Einzellösung, Jahrelang im Einsatz, mit keinem heutigen Programm
vergleichbar). Wir bringen die Lösung die die 32/64bit Welt und der Kunde ist voll Happy. Vorallem da er jetzt wieder neue
Funktionalitäten dazubekommen kann und wird.

Also, nur zu glauben es einfach mal mit xBase++ schnell so zum laufen zu bringen, wird/kann sicher nicht funktionieren.

Sorry - hoffe dir nicht den Mut genommen zu haben, aber das wird sicher ein größeres Projekt (vorallem wegen deinen Zusatzbibliotheken).
_____________
lg
Hans

Antworten