
Urge ayuda con traducción de C a Java
Publicado por anonymous (2 intervenciones) el 18/09/2019 20:30:50
Estoy trabajando en una aplicación de java basándome en un código en c que ya tenia hecho, pero estoy teniendo problemas con la traducción.
Se trata de una aplicación a la cual le metemos dos letras y deben de ir concatenadas a 5 dígitos autoincrementables (ejemplo: AB00001) este se iguala a un string en ascii que también es autoincrementable y este ascci se va convirtiendo en hexadecimal.
Este es mi código base en C
y este es mi código en Java
He estado haciendo varias pruebas y cambios a lo largo del código y no logro hacer que funcione en Java pero no entiendo que me esta haciendo falta, puse los sout solo para corroborar que me imprimiera lo que necesito pero no me imprime todo por completo, no se si no declaré bien todas las variables e hice bien todos los arreglos, porque en C funciona perfectamente y en Java no.
Si alguien pudiera darme una pista se los agredeceria
Se trata de una aplicación a la cual le metemos dos letras y deben de ir concatenadas a 5 dígitos autoincrementables (ejemplo: AB00001) este se iguala a un string en ascii que también es autoincrementable y este ascci se va convirtiendo en hexadecimal.
Este es mi código base en C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"#include <string.h>
"#include <stdlib.h>
"#define START "<+6-9)1*4174"
"int main(void) {
char c[25];
char out[25];
char hex[50];
char numChar[20];
int i, j, m, n, numini, numfin;
printf("Numero inicio: ");
scanf("%s", numChar);
numini = atoi(numChar);
printf("Numero final: ");
scanf("%s", numChar);
numfin=atoi(numChar)+1;
printf("Letras: ");
scanf("%s", c);
//printf("Character entered: %s\n", c);
//strcpy(c, "MC");
for(int x=numini; x<numfin; x++) {
sprintf(&c[2], "%05d", x);
strcpy(out, START);
for(i=0, j=0; i<strlen(c); i++) {
m=(int)c[i];
n=m;
switch(i) {
case 0: //
m-=64;
m/=10;
n-=64;
n%=10;
out[0]+=m;
out[1]+=n;
break;
case 1:
m-=57;
m/=10;
n-=57;
n%=10;
out[2]+=m;
out[3]+=n;
break;
default:
m-=0x30;
out[2+i]+=m;
break;
}
}
for (int y=0, z=0; y<strlen(out); y++, z+=2) {
sprintf(&hex[z], "%02x", out[y]);
}
printf("%s|%s|%s\n", c, hex, out);
}
return 0;
}
y este es mi código en Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
private int vi, vf;
private int i, j, m, n;
private String letras;
private String texto="";
private String [] out = {};
private static final String [] start = {"<","+","6","-","9",")","1","*","4","1","7","4"};
private int[] cGlob = {};
private int hex;
int length = cGlob.length;
int x;
private void jButton_IniciarActionPerformed(java.awt.event.ActionEvent evt) {
//#define START "<+6-9)1*4174"
Scanner teclado = new Scanner(System.in);
this.hex = teclado.nextInt();
String hexas = Integer.toHexString(this.hex);
texto = jTextField_Termina.getText();
vf = Integer.parseInt(texto);
texto = jTextField_Inicia.getText();
vi = Integer.parseInt(texto);
letras =jTextField_Letras.getText();
letras = letras.toUpperCase();
for(x = vi; x < vf; x++){
String mac = String.format(letras+"%05d",(x+1));
System.out.println(mac);
jTextArea1.append(mac+"\n");
out = start;
for(i=0, j=0; i<length; i++) {
m =(int)cGlob[i];
n = m;
switch(i) {
case 0: //
m -= 64;
m /= 10;
n -= 64;
n %= 10;
out[0] += m;
out[1] += n;
break;
case 1:
m -= 57;
m /= 10;
n -= 57;
n %= 10;
out[2] += m;
out[3] += n;
break;
default:
m -= 0x30;
out[2+i] += m;
break;
}
}
for (int y=0, z=0; y<out.length; y++, z+=2) {
String dac = String.format(hex + "%02x" + out[y]);
System.out.println("%s|%s|%s\n" + cGlob+ hexas + out);
}
}
He estado haciendo varias pruebas y cambios a lo largo del código y no logro hacer que funcione en Java pero no entiendo que me esta haciendo falta, puse los sout solo para corroborar que me imprimiera lo que necesito pero no me imprime todo por completo, no se si no declaré bien todas las variables e hice bien todos los arreglos, porque en C funciona perfectamente y en Java no.
Si alguien pudiera darme una pista se los agredeceria
Valora esta pregunta


0