Java - Urge ayuda con traducción de C a Java

 
Vista:
sin imagen de perfil

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Urge ayuda con traducción de C a Java

Publicado por Tom (1605 intervenciones) el 18/09/2019 20:58:34
cGlob es un array de tamaño 0
De cualquier manera, no se entiende lo que intentas hacer ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Urge ayuda con traducción de C a Java

Publicado por anonymous (2 intervenciones) el 18/09/2019 22:07:24
gracias, ya arregle eso del cGlob y ya solucione otras cosas... y estoy haciendo unicamente la traducción de uno a otro pero, de todos modos gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Urge ayuda con traducción de C a Java

Publicado por Radames (1 intervención) el 19/09/2019 18:19:20
Hola, tengo una duda porque estas tratando leer los datos desde la consola desde una aplicacion grafica.
Si vas a utilizar un Botón para hacer la acción que deseas, deberias de ocupar un Jtextfield, o showinput, si lo que deseas es que trabaje solo en la consola ocupa el Scanner.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar