Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 22
OSKR Va por buen camino
Gracias a Dios alguien comenta esto....
Si es recomendable...no hay problema alguno
Ñuño Martínez:
Cita:
igual los registros ni los datos en memoria
falso.....el fwrite y el fread no saben q estan leyendo....solo saben q tienen q extraer cierta cantidad de bytes (sizeof(struct Registro)) en bloqes de n (3º paràmetro) del apuntador al descriptor de archivo señalado por el puntero (pf), usar fgetc y fputc es lo mismo....solo q implicara mas lìneas y mas validaciones para formar los datos q necesitamos...por eso no necesariamente leemos registros (eso es facinante.......LIBERTAD !!!!)
Cita:
por ejemplo no lo hacen igual Turbo C (que es de 16 bit) y Builder C++ (que es de 32 bit)
Negativo procedimiento...he sido preparador de asignaturas como Estructura de Datos en las cuales he usado C(++) hasta decir BASTA (y en 1 una u otra ocasion java...) y nunk he tenido ese problema...claro...hay q tener en cuenta q si vas a usar enteros largos uses long int o long, si son cortos uses short int o short, no declares int solamente, puesto q si tu archivo llega a ser abierto en una plataforma cuyo direccionamiento es mayor o menor...ahi si tendrìas cierto inconveniente....del resto......se encarga el sizeof.
Cita:
Por otro lado, si se cambia de microprocesador el orden de los octetos pueden variar, como es el caso de portar porgramas de Motorola (Mac) a Intel (PC).
De eso hasta el momento creo q solo java se encarga de hacer eso transparente...este es el tema de la codificaciòn como little/big endian, pero eso no es motivo pa morir...si se usa otras funciones....no habrìa q validar de todos modos?
Si sabes q tu aplicaciòn ha de correr en otras plataformas...lo lògico fuese q validaras en donde està parado, mira esto http://www.thescripts.com/forum/thread520538.html ...he ahì un ejemplisho de como saberlo, ademàs debes saber con q Endian trabaja el procesador
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #2  
Antiguo 15-08-2006
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.031
Poder: 28
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pongo un ejemplo:

Código:
#include <stdio.h>
#include <stdlib.h>

int ValorEntero = 0x12EC;

int main (void)
{
  FILE *Archivo = NULL;

  if (!(Archivo = fopen ("archivo.dat", "w"))
    return EXIT_FAILURE;
  if (fwrite (&ValorEntero, sizeof (ValorEntero), 1, Archivo) != 1)
    return EXIT_FAILURE;
  fclose (Archivo);
  return EXIT_SUCCESS;
}
Vale.
  • Si usamos Turbo C/C++ 1.1 el "archivo.dat" es de dos octetos de longitud y su valor es "0xEC12".
  • Si usamos MinGW32 el "archivo.dat" es de cuatro octetos de longitud y su valor es "0xEC120000".
  • Si usamos un compilador para Motorola de 16 bit apuesto el pellejo a que el archivo es de dos octetos de longitud y que su valor es "0x12EC".
  • Y si el compilador es para PowerPC dudo mucho que el archivo tenga una longitud distinta a 4 octetos y que su contenido difiera de "0x000012EC".

Última edición por Ñuño Martínez fecha: 15-08-2006 a las 12:14:50.
Responder Con Cita
  #3  
Antiguo 16-08-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 22
OSKR Va por buen camino
Nuño Martínez:
Cita:
  • Si usamos Turbo C/C++ 1.1 el "archivo.dat" es de dos octetos de longitud y su valor es "0xEC12".
  • Si usamos MinGW32 el "archivo.dat" es de cuatro octetos de longitud y su valor es "0xEC120000".
  • Si usamos un compilador para Motorola de 16 bit apuesto el pellejo a que el archivo es de dos octetos de longitud y que su valor es "0x12EC".
  • Y si el compilador es para PowerPC dudo mucho que el archivo tenga una longitud distinta a 4 octetos y que su contenido difiera de "0x000012EC".
Again....
Yo mismo:
Cita:
si vas a usar enteros largos uses long int o long, si son cortos uses short int o short, no declares int solamente, puesto q si tu archivo llega a ser abierto en una plataforma cuyo direccionamiento es mayor o menor...ahi si tendrìas cierto inconveniente....del resto......se encarga el sizeof
y again again
Cita:
...este es el tema de la codificaciòn como little/big endian, pero eso no es motivo pa morir...si se usa otras funciones....no habrìa q validar de todos modos?
Si sabes q tu aplicaciòn ha de correr en otras plataformas...lo lògico fuese q validaras en donde està parado, mira esto http://www.thescripts.com/forum/thread520538.html
En cuanto a la cantidad de octetos creo q ya qedo aclarado, ahora....el orden de los octetos es + importante...eso depende de la plataforma/procesador y en el link ya hay una forma de como saberlo....al fin y al cabo habra q usar fwrite/fread independientemente de la plataforma/compilador.....si tienes registros de 10 o mas campos te pondràs a escribir fputs, fputc, putw, etc, etc cada vez q hayas de escribir y sus anàlogas cada vez q hayas de leer?...seria mas codigo y mas tiempo . Es cuestiòn de no hacer programas de forma empìrica asumiendo muchas variables sino de vez en cuando validar el comportamiento de nuestro exe de acuerdo al lugar donde se encuentre...
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #4  
Antiguo 19-08-2006
Tapax Tapax is offline
Miembro
 
Registrado: may 2006
Posts: 13
Poder: 0
Tapax Va por buen camino
Wow, muuuchas gracias por las respuestas, muy muy muy interesantes.
Ahora si he aprendido a manejar archivos
Graciassss
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manejo de archivos .tif BetoAlonso Gráficos 5 06-07-2010 07:03:31
Manejo de una DLL guiweb Varios 4 30-06-2006 15:10:48
manejo de BD raco Varios 0 21-07-2005 00:25:33
manejo de archivos Egar Varios 0 24-03-2005 01:57:13
c++ builder y manejo de archivos binarios prubtest C++ Builder 2 11-03-2004 17:03:05


La franja horaria es GMT +2. Ahora son las 09:34:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi