elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación General / Problema modificación archivo binario java en: 3 Junio 2013, 11:28 am
Hola, buenas noches, o buenos días  :P

Espero y me puedan ayudar, estoy trabajando con archivos binarios, y en la modificación estoy que no puedo avanzar, en teoría yo diría que debería estar bien.
lo que hago es lo siguiente:
- creo otro archivo, pido la matricula que voy a modificar, entonces copio todo del archivo "original" al nuevo excepto el que quiero modificar, entonces pido los nuevo datos, los agrego, borro el original, cambio nombre del segundo archivo.

El error debe de estar en mi código (supongo), ya he pedido ayuda a compañeros pero nadie me dice nada mas de un "debería de funcionar así" y pues la verdad es que ya no encuentro que hacer, espero que me puedan ayudar, gracias.

Mi código de modificación es el siguiente:
Código:
public void modificarRegistro(BufferedReader entrada) throws IOException{
        archivo=new File("temp");
        grabar=new DataOutputStream(new FileOutputStream("texto.txt",true));
        leer=new DataInputStream(new FileInputStream("texto.txt"));
        grabar2 =new DataOutputStream(new FileOutputStream("temp",true));
        int matriculab;
        System.out.println("Matricula a buscar");
        matriculab=3;
        String nombre;
        try{
            while((nombre=leer.readUTF())!=null){
               
                int mat=leer.readInt();
                float c1=leer.readFloat();
                float c2=leer.readFloat();
                float prom=leer.readFloat();
                if(matriculab==mat){
                                   
                }
                else{
                   
                   obj.setNombre(entrada.readLine());                   
                   
                   obj.setMatricula(Integer.parseInt(entrada.readLine()));
                   
                   obj.setCalificacion1(Float.parseFloat(entrada.readLine()));
                   
                   obj.setCalificacion2(Float.parseFloat(entrada.readLine()));
                 
                   obj.setPromedio((obj.getCalificacion1()+obj.getCalificacion2())/2);
                   
                   grabar2.writeUTF(obj.getNombre());
                   grabar2.writeInt(obj.getMatricula());
                   grabar2.writeFloat(obj.getCalificacion1());
                   grabar2.writeFloat(obj.getCalificacion2());
                   grabar2.writeFloat(obj.getPromedio());
                }
               
               
               
            }
                System.out.println("Nuevo nombre del Alumno: ");
                obj.setNombre(entrada.readLine());
                System.out.println("Nueva Matricula: ");
                obj.setMatricula(Integer.parseInt(entrada.readLine()));
                System.out.println("Nueva Calificación 1: ");
                obj.setCalificacion1(Float.parseFloat(entrada.readLine()));
                System.out.println("Nueva Calificación 2: ");
                obj.setCalificacion2(Float.parseFloat(entrada.readLine()));
                obj.setPromedio((obj.getCalificacion1()*obj.getCalificacion2())/2);
                //escritura en archivo
                grabar2.writeUTF(obj.getNombre());
                grabar2.writeInt(obj.getMatricula());
                grabar2.writeFloat(obj.getCalificacion1());
                grabar2.writeFloat(obj.getCalificacion2());
                grabar2.writeFloat(obj.getPromedio());
               
                grabar2.close();
                archivo.delete();
                archivo2.renameTo(archivo);
               
                leer.close();
                leer2.close();
                grabar.close();
                grabar2.close();
        }catch(IOException err){
            System.out.println("Error");
        }
    }

Utilizando el ciclo while(true) me marca error en el NetBeans que solo logre resolver utilizando el ciclo "while((nombre=leer.readUTF())!=null)"
2  Programación / Programación C/C++ / Ayuda con error ejecutando un programa en C en: 3 Junio 2012, 01:36 am
Hola, espero que me puedan ayudar tengo un error que llevo ya casi 2 dias sin poder hacer nada
tengo que entregar un proyecto final en C,
el programa me compila y todo, pero al querer hacer las consultas me salta este me manda a "Error" directamente que es lo que me debe de imprimir si no tengo datos ya cheque consulta.c y veo todo bien, desde consulta.c mando a llamar ordenar.c que es la que ordena los datos, e igual lo miro bien, por eso pido de su ayuda a ver si encuentran un error.
archivos apenas vimos una clase y nos encargaron el proyecto asi, y por lo poco que vimos la verdad tengo muchas dudas.
bueno si mas le dejo los codigos:
consulta.c
Código:
#include<stdio.h> 
#include"estructura.h"
void consultag()
{FILE *Art;
 articulo A;
 ordenar();
 if((Art=fopen("Arti.dat","rb"))==NULL){
         printf("Error...");
 exit(0);}
 else
{write(fread(&A,sizeof(articulo),1,Art)>0);
        imprimir(A);
        fclose(Art);
}
}

ordenar.c
Código:
#include<stdio.h> 
#include"estructura.h"
void ordenar()
{FILE *Art;
 articulo A,A2,aux;
 int x,y;
 long int N;
 if((Art=fopen("arti.dat","rb+"))==NULL)
 { printf("Error...\n");
         exit (0);}
 else
 {fseek(Art,0L,2);
         N=ftell(Art)/sizeof(articulo);
         rewind(Art);
         for(x=1;x<N;x++)
                 for(y=0;y<N-x;y++)
                 {fseek(Art,y*sizeof(articulo),0);
                  fread(&A,sizeof(articulo),1,Art);
                  fseek(Art,(y+1)*sizeof(articulo),0);
                  fread(&A2,sizeof(articulo),1,Art);
                  if(A.precio>A2.precio)
                  {aux=A;
                   A=A2;
                   A2=aux;
                   fseek(Art,y*sizeof(articulo),0);
                   fwrite(&A,sizeof(articulo),1,Art);
                   fseek(Art,(y+1)*sizeof(articulo),0);
                   fwrite(&A2,sizeof(articulo),1,Art);
                                  }
                 }
         fclose(Art);
 }
}

El problema es que me imprime "error" y tambien he llege a pensar que podrian ser las altas
por si acaso les dejo el codigo de altas.c
Código:
#include<stdio.h> 
#include<stdlib.h>
#include"estructura.h"
void  altas()
{FILE *Art;
        articulo A;
        char salir[5];
        float t;
        Art=fopen("arti.dat","ab");
        do{
        printf("Clave del articulo:\n");
         scanf("%s",&A.clave);
         system("clear");
         printf("Tipo:\nBlusa:\nVestido:\nZapato:\nAccesorio:\n");
         scanf("%s",&A.tipo);
         printf("Descripcion del articulo:\n");
         system("clear");
         printf("Color:\n");
         scanf("%s",&A.descrip.color);
         system("clear");
         printf("Medida\n");
         scanf("%s",&A.descrip.medida);
         system("clear");
         printf("Precio articulo:\n");
         scanf("%f",&t);
         A.precio=t;
         system("clear");
         printf("Codigo de barras:\n");
         scanf("%d",&A.codb);
         getc(stdin);
         system("clear");
         printf("Desea ingresar otro articulo?(S/N)\n");
         scanf("%s",salir);
         fwrite(&A,sizeof(articulo),1,Art);
        }while(strcmp(salir,"no"));
        fclose(Art);
}

Espero que me puedan ayudar por favor, seria de gran gran ayuda.
3  Programación / Programación C/C++ / Errores que no encuentro :c ayuda por favor en: 31 Mayo 2012, 23:06 pm
Hola, estoy con mi proyecto final en programación en mi universidad, apenas estoy en 2do semestre
mi programa es en estructuras en archivos
pero al momento de querer copilar me marca errores que no conozco, espero que me puedan ayudar ya que estoy muy parado aqui y el proyecto ya es para mañana
me salen estos errores al querer copilar:


In file included from menu.c:11:
imprimir.h:3: error: expected â)â before âAâ
In file included from menu.c:14:
imprimirf.h:3: error: expected â)â before âFâ
menu.c: In function âmainâ:
menu.c:62: error: duplicate case value
menu.c:60: error: previously used here
menu.c:74: error: expected â:â before âprintfâ
make: *** [menu.o] Error 1

y este es el codigo del menu, si necesitan el codigo de otra cosa, se los doy, enserio ojala me puedan ayudar :c gracias:

Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"altas.h"
#include"consultag.h"
#include"consultap.h"
#include"bajas.h"
#include"ventas.h"
#include"modificaciones.h"
#include"consultafactura.h"
#include"imprimir.h"
#include"ordenar.h"
#include"buscar.h"
#include"imprimirf.h"
   typedef struct
{ char color[15];
  char medida[15];
}des;

  typedef struct
{ char nom[15];
  char Ap[15];
  char Am[15];
  char D[35];
  int tel;
} direccion;

  typedef struct
{ char clave[15];
  char tipo[15];
  float precio;
  des descrip;
  int codb;
} articulo;

 typedef struct
{ direccion direc;
  float M;
  int nof;
}factura;

int main()
{ int opc;
        do
        {  printf("Que desea realizar?\n");
        printf("\n Altas de articulos...........................[1]\n");
        printf("\n Consulta ordenada por precio.................[2]\n");
        printf("\n Consulta particular por codigo de barras.....[3]\n");
        printf("\n Modificaciones por codigo de barras..........[4]\n");
        printf("\n Bajas........................................[5]\n");
        printf("\n Ventas.......................................[6]\n");
        printf("\n Consultar factura............................[7]\n");
        printf("\n Salir........................................[8]\n");
        printf("\n Opcion a elegir..............[ ]\b\b");
        scanf("%d",&opc);
        switch(opc)
        {
                case 1: altas();
                        break;
                case 3: consultag();
                        break;
                case 3: consultap();
                        break;
                case 4: modificaciones();
                        break;
                case 5: bajas();
                        break;
                case 6: ventas();
                        break;
                case 7: consultafactura();
                        break;
                case 8:
                        break;
        default printf("Error...");
        }
          }while(opc!=8);
          return 0;
        }

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines