vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Konvertierung von EBCDIC nach ASCII 
Autor: Herbert
Datum: 04.05.02 22:45

Hi Wusel,

ich hätte da die angesprochene Tabelle (war damals noch die meiste Arbeit, die entsprechenden Codes herauszubekommen) und die Funktionen (2 für Zeichenkonvertierungen und 2 für Zahlenwertkonvertierung). Auf welchem Weg soll ich Dir das zukommen lassen? Anlagen kann man wohl nicht über das Forum schicken - dann vielleicht am Besten per e-Mail? Meine Adresse lautet "herbert.giese@arcor.de".

Willst Du die Datei selbst konvertieren, oder soll ich es machen? Die Funktionen (wie schon erwähnt in Foxpro) sind schon mal hier, schau mal ob Du sie in etwa verstehst, wenn nicht Frage bitte (im Prinzip immer gleich: ggf. Datenbankdatei öffnen, Index für die Suche erzeugen, für jedes Zeichen im String Code suchen und das Äquivalent in den Rückgabestring schreiben)

Gruß Herbert


**********************************************************************************************
** Prozedur EBCD_ASC()
**
** konvertiert eine Zeichenkette von EBCDIC nach ASCII
**
**********************************************************************************************
PROCEDURE ebcd_asc
PARAMETERS sp_string
PRIVATE sp_string, sp_len, sp_ret, n
sp_len = 0
sp_ret = ''
n = 0
*****Datei geöffnet?*****
IF USED("ebcdic")
SELECT ebcdic
ELSE
SET MESSAGE TO 'foxprowudfebcdic.dbf öffnen'
SELECT 0
USE (LOCFILE(SYS(2004) + "udfebcdic.dbf","DBF","Wo ist ebcdic.dbf?")) ;
AGAIN ALIAS ebcdic ORDER 0
SET INDEX TO
DELETE FILE SYS(2004) + "udfebcdic_a.idx"
INDEX ON u_ascii TO SYS(2004) + "udfebcdic_a.idx" COMPACT ADDITIVE
DELETE FILE SYS(2004) + "udfebcdic_e.idx"
INDEX ON u_ebcdic TO SYS(2004) + "udfebcdic_e.idx" COMPACT ADDITIVE
ENDIF
***************************
SELECT ebcdic
SET INDEX TO SYS(2004) + 'udfebcdic_e.idx'
sp_len = LEN(sp_string)
FOR n = 1 TO sp_len
SEEK(ASC(SUBSTR(sp_string,n,1)))
sp_ret = sp_ret + CHR(ebcdic.u_ascii)
ENDFOR
RETURN sp_ret

**********************************************************************************************
** Prozedur ASC_EBCD()
**
** konvertiert eine Zeichenkette von ASCII nach EBCDIC
**
**********************************************************************************************
PROCEDURE asc_ebcd
PARAMETERS sp_string
PRIVATE sp_string, sp_len, sp_ret, n
sp_len = 0
sp_ret = ''
n = 0
*****Datei geöffnet?*****
IF USED("ebcdic")
SELECT ebcdic
ELSE
SET MESSAGE TO 'foxprowudfebcdic.dbf öffnen'
SELECT 0
USE (LOCFILE(SYS(2004) + "udfebcdic.dbf","DBF","Wo ist ebcdic.dbf?")) ;
AGAIN ALIAS ebcdic ORDER 0
SET INDEX TO
DELETE FILE SYS(2004) + "udfebcdic_e.idx"
INDEX ON u_ebcdic TO SYS(2004) + "udfebcdic_e.idx" COMPACT ADDITIVE
DELETE FILE SYS(2004) + "udfebcdic_a.idx"
INDEX ON u_ascii TO SYS(2004) + "udfebcdic_a.idx" COMPACT ADDITIVE
ENDIF
***************************
SELECT ebcdic
SET INDEX TO SYS(2004) + 'udfebcdic_a.idx'
sp_len = LEN(sp_string)
FOR n = 1 TO sp_len
SEEK(ASC(SUBSTR(sp_string,n,1)))
sp_ret = sp_ret + CHR(ebcdic.u_ebcdic)
ENDFOR
RETURN sp_ret

**********************************************************************************************
** Prozedur VAL_ASEB()
**
** konvertiert einen Dezimalcode von ASCII nach EBCDIC
**
**********************************************************************************************
PROCEDURE val_aseb
PARAMETERS sp_wert
PRIVATE sp_wert
*****Datei geöffnet?*****
IF USED("ebcdic")
SELECT ebcdic
ELSE
SET MESSAGE TO 'foxprowudfebcdic.dbf öffnen'
SELECT 0
USE (LOCFILE(SYS(2004) + "udfebcdic.dbf","DBF","Wo ist ebcdic.dbf?")) ;
AGAIN ALIAS ebcdic ORDER 0
SET INDEX TO
DELETE FILE SYS(2004) + "udfebcdic_e.idx"
INDEX ON u_ebcdic TO SYS(2004) + "udfebcdic_e.idx" COMPACT ADDITIVE
DELETE FILE SYS(2004) + "udfebcdic_a.idx"
INDEX ON u_ascii TO SYS(2004) + "udfebcdic_a.idx" COMPACT ADDITIVE
ENDIF
***************************
SELECT ebcdic
SET INDEX TO SYS(2004) + 'udfebcdic_a.idx'
GO TOP
SEEK sp_wert
sp_wert = ebcdic.u_ebcdic
RETURN sp_wert

**********************************************************************************************
** Prozedur VAL_EBAS()
**
** konvertiert einen Dezimalcode von EBCDIC nach ASCII
**
**********************************************************************************************
PROCEDURE val_ebas
PARAMETERS sp_wert
PRIVATE sp_wert, sp_len
sp_len = 0
*****Datei geöffnet?*****
IF USED("ebcdic")
SELECT ebcdic
ELSE
SET MESSAGE TO 'foxprowudfebcdic.dbf öffnen'
SELECT 0
USE (LOCFILE(SYS(2004) + "udfebcdic.dbf","DBF","Wo ist ebcdic.dbf?")) ;
AGAIN ALIAS ebcdic ORDER 0
SET INDEX TO
DELETE FILE SYS(2004) + "udfebcdic_e.idx"
INDEX ON u_ebcdic TO SYS(2004) + "udfebcdic_e.idx" COMPACT ADDITIVE
DELETE FILE SYS(2004) + "udfebcdic_a.idx"
INDEX ON u_ascii TO SYS(2004) + "udfebcdic_a.idx" COMPACT ADDITIVE
ENDIF
***************************
SELECT ebcdic
SET INDEX TO SYS(2004) + 'udfebcdic_e.idx'
GO TOP
SEEK sp_wert
sp_wert = ebcdic.u_ascii
RETURN sp_wert
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Konvertierung von EBCDIC nach ASCII43Wusel03.05.02 20:26
Re: Konvertierung von EBCDIC nach ASCII24Herbert04.05.02 16:59
Re: Konvertierung von EBCDIC nach ASCII27Wusel04.05.02 18:33
Re: Konvertierung von EBCDIC nach ASCII27Herbert04.05.02 22:45

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel