dbsetindex("IV20121231.NT1")

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

Moderator: Moderatoren

dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Mi, 13. Jun 2012 19:01

Hallo

ich hab angefangen mein WAWI programm nach xBase zu migrieren.

Sieht gar nicht so schlecht aus.

Aber der Teufel steckt im Detail:

Ich will/muss 1 zu 1 migrieren, also im CMD Fenster ohne GUI Schalter.

1. Problem
Ich erstelle Indexdateien mit "IV20121231.NT1" . Funktioniert
aber dbsetindex("IV20121231.NT1") findet den index nicht wie in Clipper.
Was kann man tun ?

2. Problem
Dastellung der ASC(1) - ASC(31) zeichen am Bildschirm bring nur das Rechteck.
Gibts da einen Schalter oder so ?

Danke im Voraus.

Gruß Bernd
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon Manfred » Mi, 13. Jun 2012 19:20

Hi,

nur mal so in den Raum geworfen: hast Du es mal mit Ordlistadd() versucht?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15859
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Mi, 13. Jun 2012 20:20

ordlistadd verhält sich genauso wie dbsetindex

oError:args :
-> VALTYPE: C VALUE: E:\wawi8\INDEX\IV120612.NT2
oError:canDefault : J
oError:canRetry : J
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Name ist bereits vergeben
oError:filename :
oError:genCode : 67
oError:operation : DbSetIndex
oError:osCode : 0
oError:severity : 2
oError:subCode : 8071
oError:subSystem : BASE
oError:thread : 1
oError:tries : 1

Gruß Bernd
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon UliTs » Mi, 13. Jun 2012 23:01

BJelinek hat geschrieben:..
-> VALTYPE: C VALUE: E:\wawi8\INDEX\IV120612.NT2
..
oError:description : Name ist bereits vergeben
..

Hast Du vielleicht 2 Indexdateien, die z.B. IV120612.NT2 und IV120612.NT1 heißen?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: dbsetindex("IV20121231.NT1")

Beitragvon AUGE_OHR » Do, 14. Jun 2012 0:32

BJelinek hat geschrieben:oError:args :
-> VALTYPE: C VALUE: E:\wawi8\INDEX\IV120612.NT2
oError:canDefault : J
oError:canRetry : J
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Name ist bereits vergeben
oError:filename :
oError:genCode : 67
oError:operation : DbSetIndex
oError:osCode : 0
oError:severity : 2
oError:subCode : 8071
oError:subSystem : BASE
oError:thread : 1
oError:tries : 1
Hilfe : NTXDBE (ORDER-Komponente)
Zum Beispiel ist dieser Code nicht erlaubt:
Code: Alles auswählen
INDEX ON Nachname TO Name.nt1
   INDEX ON Vorname  TO Name.nt2
   SET INDEX TO Name.nt1, Name.nt2
In diesem Fall wird "Name" implizit als TAG Bezeichner bei zwei Indexdateien verwendet, was zu einem Laufzeitfehler führt.
Diese Situation läßt sich vermeiden, wenn explizit verschiedene TAG Bezeichner verwendet werden:
Code: Alles auswählen
INDEX ON Nachname TAG Nachname TO Name.nt1
   INDEX ON Vorname  TAG Vorname  TO Name.nt2
   SET INDEX TO Name.nt1, Name.nt2
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10076
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: dbsetindex("IV20121231.NT1")

Beitragvon AUGE_OHR » Do, 14. Jun 2012 0:35

BJelinek hat geschrieben:2. Problem
Dastellung der ASC(1) - ASC(31) zeichen am Bildschirm bring nur das Rechteck.
Gibts da einen Schalter oder so ?
hm ... Zeichen unter CHR(32) gehen doch auch unter Cl*pper nicht, oder ?
was für eine Font benutzt du ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10076
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Do, 14. Jun 2012 10:49

Hallo Uli

ich habe IV20121231.NT1 bis IV20121231.NT9

Unter Clipper war das kein Problem ?

Dann gehen wohl temporäre Indexdateien
vom Typ "db00001.tmp" auch nicht mehr.

Hallo Jimmy

unter Clipper wurden die ASC(1) bis ASC(31) angezeigt.
Kartensymbole Pfeile ... Gut ASC(7) und ASC(9) natürlich nicht.

Wenn ich mit GUI = yes arbeite, zeigt er sie ja an.
nur nicht bei GUI = no

Gruß Bernd
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Do, 14. Jun 2012 10:53

Hallo Jimmy

Hab noch was vergessen.

ich verwende in meinem Start-Batch
chcp 437


Gruß Bernd
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon brandelh » Do, 14. Jun 2012 11:21

wir sollten eigentlich die eingestellte CP 850 nutzen ...

Dieses Programm gibt bei mir mit GUI und OHNE GUI die Zeichen aus:

Code: Alles auswählen
proc main
   LOCAL x
   FOR x := 0 TO 32
       ? x, CHR(x)
       IF x = 15
          WAIT
       ENDIF
   NEXT
   wait
return
Dateianhänge
PROJECT.XPJ
(618 Bytes) 71-mal heruntergeladen
TEST.PRG
(138 Bytes) 71-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13204
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: dbsetindex("IV20121231.NT1")

Beitragvon UliTs » Do, 14. Jun 2012 11:43

BJelinek hat geschrieben:ich habe IV20121231.NT1 bis IV20121231.NT9
Unter Clipper war das kein Problem ?
Dann gehen wohl temporäre Indexdateien vom Typ "db00001.tmp" auch nicht mehr.
...

Hallo Bernd,
temporäre Indexdateien mit anderer Kennung als ".ntx" sind kein Problem!
Wenn Du nicht so ohne weiteres die Namen der Indexdateien ändern kannst (z.B. wegen konkurierendem Zugriff mit alten Anwendungen), würde ich bei Alaska nachfragen. Vielleicht gibt es ja eine einfache Lösung.
-
Ansonsten würde ich direkt auf DBF/CDX umsteigen :-) und nicht nur einfach neue Namen für die Indexdateien vergeben.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: dbsetindex("IV20121231.NT1")

Beitragvon brandelh » Do, 14. Jun 2012 12:44

Hi,

ich habe zwar keine Erfahrungen mit Indexdateien, deren Endung nicht NTX oder CDX sind, aber wenn es nur ab TAG liegt,
den kann man beim Öffnen doch angeben ...

Code: Alles auswählen
OrdListAdd( "Index.NT1", "Vorname" )
OrdListAdd( "Index.NT2", "Nachname" )
...


Bei NTX ist - meines Wissens - kein TAG Name beim Erstellen möglich bzw. dieser wird einfach ignoriert.
NTX haben keine gespeicherten TAG Namen, da sie ja nur einen Index unterstützten. Bei CDX sieht das anders aus.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13204
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: dbsetindex("IV20121231.NT1")

Beitragvon AUGE_OHR » Fr, 15. Jun 2012 0:17

BJelinek hat geschrieben:ich habe IV20121231.NT1 bis IV20121231.NT9

Dann gehen wohl temporäre Indexdateien
vom Typ "db00001.tmp" auch nicht mehr.
sieh dir doch bitte noch mal genau den Unterschied an.

im ersten Fall ist VOR dem Punkt alles "gleich" -> Problem TAG
im zweiten wirst du vermutlich den "Zähler" in "db00002" ändern und das "tmp" kommt NACH dem Punkt

BJelinek hat geschrieben:Kartensymbole Pfeile
welchen Font verwendest du ?
ist dein Source OEM oder ANSI ?

was sagt das Browse hier bei dir ?
Code: Alles auswählen
PROC MAIN
      CLS
      dbCreate( "__COLL", {{ "CHAR", "C", 3, 0}})
      USE __COLL EXCLUSIVE NEW

      // throw in all possible chars
      FOR x := 1 TO 255
         dbAppend()
         __Coll->Char := CHR( x)
         dbCommit()
      NEXT

      // index it ...
      INDEX ON __Coll->Char TO __COLL

      browse()
RETURN
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10076
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Sa, 16. Jun 2012 19:15

Hallo

Danke für eure Demos.
Bei mir kommen nur leere Kästchen.
Was mache ich nur falsch ?

Habs auch auf einem neuen Rechner mit win7 64 Home Premium
versucht. Gleiches Ergebins.

Werde nächste Woche mal Alaska Hotline fragen.

setlocale(NLS_IOEMCP) --> 850

Auch chcp 437 oder chcp 850 haben keine auswirkung.

Frage zum Editor:

Ich verwende eine dos Editor ted5, der hat kein ansi.

Aber eine schöne Funktion die ich so nocht nicht gefunden habe.
Suche fortlaufend einen Text. Es werden nur die Zeilen mit dem Text angezeigt.
Und kann diese Zeilen bearbeiten/ändern. Hilft mir sehr beim Migrieren.
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon UliTs » Sa, 16. Jun 2012 21:57

MultiEdit kann das auch :-)
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: dbsetindex("IV20121231.NT1")

Beitragvon Hans Zethofer » Sa, 16. Jun 2012 23:23

Ed for Windows kann das auch =D>
_____________
lg
Hans
Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 225
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2326 Maria Lanzendorf

Re: dbsetindex("IV20121231.NT1")

Beitragvon Jan » So, 17. Jun 2012 6:59

Ich mach das seit Jahren mit VX.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11456
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: dbsetindex("IV20121231.NT1")

Beitragvon brandelh » So, 17. Jun 2012 12:55

BJelinek hat geschrieben:Hallo

Danke für eure Demos.
Bei mir kommen nur leere Kästchen.
Was mache ich nur falsch ?


kann es sein, dass du in den Eigenschaften der CMD Box eine andere Schrift ausgewählt hast ?

Consolas, Lucida Console oder Rasterschriftart sind normal, wobei ja Xbase++ normalerweise den Alaska-CRT Schriftsatz verwenden (bei GUI Modus mit XbpCrt),
Bei GUI=NO sollte der Zeichensatz von Windows verwendet werden.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13204
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Mi, 20. Jun 2012 21:33

Hallo Hubert,
Nur Windows Standard Schriften.
Ich wüste nicht mal wie ich eine andere Schriftart
In der cmd Box verwenden könnte.
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon UliTs » Mi, 20. Jun 2012 22:16

BJelinek hat geschrieben:... Ich wüste nicht mal wie ich eine andere Schriftart in der cmd Box verwenden könnte.

Einfach nach <Alt-Shift-Leertaste> den Menüpunkt "Eigenschaften" auswählen, anschließend den Reiter "Schriftart" und dort die gewünschte Schriftart und Größe auswählen :D .
Mausliebhaber können auch statt <Alt-Shift-Leertaste> die Ecke Oben-Links anklicken :razz:

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Do, 21. Jun 2012 15:11

Hallo Uli,
habe mich wohl falsch ausgedrückt.
Einfach nach <Alt-Shift-Leertaste> den Menüpunkt "Eigenschaften" auswählen, anschließend den Reiter "Schriftart" und dort die gewünschte Schriftart und Größe auswählen :D .
Mausliebhaber können auch statt <Alt-Shift-Leertaste> die Ecke Oben-Links anklicken :razz:

Klar geht dann das Fenster auf um eine andere Schrift zu wählen.
2 oder 3 je nach Windows.
Aber eine neue nicht aufgeführte Schriftart hinzufügen habe ich gemeint.
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon BJelinek » Mi, 27. Jun 2012 20:47

Hallo

bin mit meinem Codepage/Schriftart etwas weiter.

Wenn ich die Rasterschriften nehme gehts, bei Consolas und
Lucida Console gehts nicht. Bei Clipper tuts mit allen drei.

Auch kann man in der Registry weitere Truetype Schriften eintragen
wie Courier New, aber das fehlen auch asc 1 -31 Zeichen.
Ich hab eine ASCII.TTL gefunden, die Funktioniert mit Word, aber nicht
in der CMD-Box. Man bräuchte eine AlaskaCrt.ttl oder so.

Das Index-Problem ist eigentlich keines mehr. Ich bin ja nicht mehr auf 8.3
angewiesen. Gibts halt IV20121231_1.ntx _2.ntx ...
Man denkt halt noch in Clipper 8.3 Dateikonvention.

Einen Mischbetrieb xBase/Clipper will ich eh nicht zulassen.
Clipper/xBase gibts für bestimmte externe Probleme jetzt schon.
Daten aus SQL und Access Datenbanken auslesen und für Clipper
aufbereiten.
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: dbsetindex("IV20121231.NT1")

Beitragvon AUGE_OHR » Mi, 27. Jun 2012 20:58

BJelinek hat geschrieben:Aber eine neue nicht aufgeführte Schriftart hinzufügen habe ich gemeint.
wenndu Win7/8 meinst : "START" -> gibt doch mal "font" ein.
Systemsteuerung\Alle Systemsteuerungselemente\Schriftarten

p.s. schon mal mit "Zeichentabelle" versucht die ''↑↓" einzufügen ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10076
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: dbsetindex("IV20121231.NT1")

Beitragvon brandelh » Do, 28. Jun 2012 8:07

In der Wissensbasis habe ich meinen Vortrag zur Devcon 2007 MIG_01 veröffentlicht.
In dem letzten Beispiel zeige ich, wie man mit XbpCrt() und GUI=YES die Schriftart setzen kann.
Es gehen nicht alle Fonts (besser es sieht bei vielen scheußlich aus), aber einige schon ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13204
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim


Zurück zu Migration

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast