Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Procedimiento read (https://www.clubdelphi.com/foros/showthread.php?t=27534)

ber 23-11-2005 18:46:35

Procedimiento read
 
Hola a todos, tengo el siguiente codigo que segun yo debe leer un archivo, el archivo contiene la sig. informacion:

tiempo X Y Z Conc. Intervalo1 ConcIntervalo2
0, 2, 2, 6, 437273.397853, 3453867.423908,.......etc

Código:

const

M=2;
Ncx=10;
Ncy=10;
Ncz=10;

fuenteX=1;
fuenteY=5;
fuente=5;
var
ConcXY:TextFile;
ni:  array[1..M,0..Ncx,0..Ncy,0..Ncz,0..1]);
x,y,z,k:  Integer;

Implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(ConcXY,'ConcXY.txt');
{$I-}reset(ConcXY);{$I+}
 for x:=0 to Ncx do
  begin
    for y:=0 to Ncy do
    begin
      for z:=0 to Ncz do
        begin
        if z=fuenteZ then
          begin
            for k:=0 to M do
            begin
              if k=M then
              begin
                readln(ConcXY,ni[k,x,y,z,0]);
              end
              else
              begin
                read(ConcXY,ni[k,x,y,z,0);
              end;
            end;
//        graficar

        end;
        end;
    end;
  end;
end;

Lo que intento con esto es leer la concentracion en cada intervalo, porque bueno esto lo voy a graficar en un eje X,Y. He ir degradando, el color segun este valor, es decir donde el valor sea muy elevado poner un color fuerte y donde es pequeño el valor un color mas degradado. y para eso uso la matriz que por ahi ven.

Este codigo me da el siguiente Error: Invalid Numeric Imput
Agradesco a quien se tome la molestia de contestarme.

Salu2

jachguate 23-11-2005 19:06:26

Podes usar la directiva {$i-} para desactivar la comprobación del input, y la función IOError para verificar que el dato leido sea correcto.

Otra posible solución es procesar el archivo como un texto, intentar la conversión de tipos (con funciones del tipo StrToInt, StrToFloat, etc.) e informar al usuario si ha ocurrido un error en alguna línea.

Hasta luego.

;)

dec 23-11-2005 21:39:37

Hola,

No entiendo nada. Planteaste la misma cuestión en este Hilo no hace nada, vamos, anteayer mismo. Se te dio una respuesta en el propio Hilo y en otro además, que pareció convencerte, a tenor de lo que tú mismo replicaste. Y, ahora, incias un nuevo Hilo para preguntar lo mismo... como digo... No sé qué pensar. No entiendo nada.

Sino es que en la guía de estilo se ruega no iniciar nuevos Hilos para las mismas preguntas... ¿no podrías haber expuesto tus dudas en el anterior Hilo y a partir de ahí hubiéramos intentado seguir adelante con el tema? En fin. Ahora hay dos Hilos duplicados, con la misma pregunta, varias respuestas diferentes y veremos a ver si suficientes... ¡Todo sea porque soluciones al cabo el problema! ¿No? ;)

Turboleta 24-11-2005 00:44:59

¡Hola! Ber.

Si el archivo que estás leyendo no lo has creado tú y tiene información numérica será un archivo tipeado y no tiene sentido abrirlo como si fuera de texto. Deberías conocer su estructura, declarar un tipo de registro con los campos necesarios, declarar una variable de ese tipo y, apartir de ahí, leer el archivo sin precuparte de saltos de línea.
Si lo creas tú, tampoco tiene sentido crear un fichero de texto para almacenar información numérica con los inconvenientes de conversión de tipos, tanto al escribir como al leer.

Espero haberte servido de ayuda.


La franja horaria es GMT +2. Ahora son las 21:58:08.

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