Ayuda con este codigo en Delphi para C# o Java

harq

Lanero Reconocido
Se unió
24 Dic 2004
Mensajes
77
hola, no tengo idea de pascal, (Delphi) y necesito pasar una clase de este a Java o C#, no entiendo estos dos metodos

function TrmBase.GetWord(const Offset: Integer): Word;
var PWord : ^Word;
PWordLo, PWordHi : Pointer;
begin
Result := 0;
if assigned (FileStream) then
begin
FileStream.Seek(OffSet-1,soFromBeginning);
new (PWord);
try
PWordHi := PWord;
PWordLo := PWord;
inc (Integer(PWordHi));
FileStream.Read(PWordHi^,1);
FileStream.Read(PWordLo^,1);
Result := PWord^;
finally
Dispose (PWord);
end;
end;
end;

function TrmBase.GetByte(const Offset: Integer): Byte;
var PByte : ^Byte;
begin
Result := 0;
if assigned (FileStream) then
begin
FileStream.Seek(OffSet-1,soFromBeginning);
new (PByte);
try
FileStream.Read(PByte^,1);
Result := PByte^;
finally
Dispose (PByte);
end;
end;
end;

GetByte y GetWord, si me ayudaran a pasarlo a C# o Java se los agradeceria,

Adjunto el archivo de proyecto exactamente la clase rmClass ...

esto es un programa que convierte o interpreta archivos DAT de rmcobol 85 que por ningun lado lo he podido conseguir, esto es la unica alternativa que he encontrado. la informacion mas reciente de cobol es del 2003, y nadie que conosca ha manejado eso. menos mal encontre este programita que lo lee, pero hecho en delphi y he probado convertidores y he tratado de que funcione pero sin ningun exito.

se los agradesco que me puedan ayudar con esto porque no se que mas hacer :nervios:
 

Archivos adjuntos

  • DECODE.rar
    149.5 KB · Visitas: 178

NSlaver

Jack of all trades
Se unió
16 Abr 2002
Mensajes
3,673
hola, no tengo idea de pascal, (Delphi) y necesito pasar una clase de este a Java o C#, no entiendo estos dos metodos

function TrmBase.GetWord(const Offset: Integer): Word;
var PWord : ^Word;
PWordLo, PWordHi : Pointer;
begin
Result := 0;
if assigned (FileStream) then
begin
FileStream.Seek(OffSet-1,soFromBeginning);
new (PWord);
try
PWordHi := PWord;
PWordLo := PWord;
inc (Integer(PWordHi));
FileStream.Read(PWordHi^,1);
FileStream.Read(PWordLo^,1);
Result := PWord^;
finally
Dispose (PWord);
end;
end;
end;

function TrmBase.GetByte(const Offset: Integer): Byte;
var PByte : ^Byte;
begin
Result := 0;
if assigned (FileStream) then
begin
FileStream.Seek(OffSet-1,soFromBeginning);
new (PByte);
try
FileStream.Read(PByte^,1);
Result := PByte^;
finally
Dispose (PByte);
end;
end;
end;

GetByte y GetWord, si me ayudaran a pasarlo a C# o Java se los agradeceria,

Adjunto el archivo de proyecto exactamente la clase rmClass ...

esto es un programa que convierte o interpreta archivos DAT de rmcobol 85 que por ningun lado lo he podido conseguir, esto es la unica alternativa que he encontrado. la informacion mas reciente de cobol es del 2003, y nadie que conosca ha manejado eso. menos mal encontre este programita que lo lee, pero hecho en delphi y he probado convertidores y he tratado de que funcione pero sin ningun exito.

se los agradesco que me puedan ayudar con esto porque no se que mas hacer :nervios:

Si mira los archivos DAT con un visor HEX y se va por ese lado?
 

harq

Lanero Reconocido
Se unió
24 Dic 2004
Mensajes
77
el archivo en si ya lo he visto, y se como es la estructura, me toco practicamente adivinarla, con el cobolviewer , el punto es que debo acceder directamente al archivo .Dat y leerlo, con el editor hex no servira pk ya lo he hecho. Lo unico que he visto que lo lee es este programita en delphi que tiene el codigo fuente, pero como dije anteriormente no se de pascal. se que hay muchas personas con este problema, desde hace años pero no existe nada codigo libre que lo haga y las aplicaciones comerciales son de miles de dolares, asi que pues, para un estudiante en su tesis, paso.

de igual manera grax por la intencion :)
 

NSlaver

Jack of all trades
Se unió
16 Abr 2002
Mensajes
3,673
el archivo en si ya lo he visto, y se como es la estructura, me toco practicamente adivinarla, con el cobolviewer , el punto es que debo acceder directamente al archivo .Dat y leerlo, con el editor hex no servira pk ya lo he hecho. Lo unico que he visto que lo lee es este programita en delphi que tiene el codigo fuente, pero como dije anteriormente no se de pascal. se que hay muchas personas con este problema, desde hace años pero no existe nada codigo libre que lo haga y las aplicaciones comerciales son de miles de dolares, asi que pues, para un estudiante en su tesis, paso.

de igual manera grax por la intencion :)

Primera función:
Esta función recibe la posición de lectura en el offset, lee del FileStream dos veces un word (16) y retorna un doubleword (32 bits)
La segunda:
Lo mismo para un entero.
 
Arriba