Pascal/Turbo Pascal - Ayuda Convertir MM a CM

 
Vista:

Ayuda Convertir MM a CM

Publicado por MIGUEL ANGEL FLORES (2 intervenciones) el 17/02/2011 01:45:48
Hola tengo un problema y bueno hace muchisimo estudie algo de pascal pero ahora no recuerdo... ni nada... jejeje pero sé que se puede resolver con este lenguaje

Tengo un archivo el cual uso para ejecutar programas en un CNC este viene dado en milimetros y yo lo quiero convertir en Centimetros..
el archivo es un texto...
les pongo un fragmento de este:

N180 G1 Z-4. F1000
N190 G3 X39.316 Y338.654 R168.428 F1000
N200 G1 Z6.
N210 G3 X38.165 Y336.621 R168.428
N220 X35.51 Y331.618 R177.123
N230 G1 Z-4.
N240 G3 X31.754 Y323.789 R177.123
N250 X11.147 Y211.063 R277.31
N260 X73.887 Y70.681 R184.202
N270 X158.587 Y23.878 R236.885
N280 X237.193 Y10.241 R294.086
N290 G1 Z6.

El punto es que por medio de un ciclo y comparaciones en los caracteres. me desplace todos los puntos decimales una posicion a la izquierda.. asi de esta manera todos los numeros se convertiran en centimetros... como notas adicionales les comento que el archivo sera como de 10,000 lineas o mas... asi que creo que será un proceso largo para el ejecutable.
no tengo idea de como plantear un ciclo que me haga la comparacion y despues el cambio de caracteres..

la verdad tengo que entregar ese programa para mañana como parte de un proyecto y muchos otros dibujos.. como para darme un clavado en el manual de pascal y obtener la ayuda que sé a ustedes les será facilisimo...

De antemano muchisimas gracias
Miguel Angel Flores Mendoza
Programador CNC, Guadalajara Mexico
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

RE:Ayuda Convertir MM a CM

Publicado por ramon (2158 intervenciones) el 18/02/2011 21:40:46
program milicent;
uses
crt, dos;
var
f : text;
dato2 : char;
dato3, dato : string[120];
i : integer;
nombre : string[18];
salir : boolean;

procedure actual;
var
k : integer;
begin
assign(f,nombre);
{$i-} reset(f); {$i+}
if ioresult <> 0 then
halt(1);
k := 1;
while not Eof(f) do
begin
read(f,dato2);
dato3[k] := dato2;
dato3[0] := chr(k);
k := k + 1;
if SeekEoln(f) then
begin
writeln(dato3);
k := 1;
end;
end;
close(f);
end;

procedure cambia;
var
k : integer;
begin
assign(f,nombre);
{$i-} reset(f); {$i+}
k := 1;
while not Eof(f) do
begin
salir := false;
read(f,dato2);
dato[k] := dato2;
dato[0] := chr(k);
k := k + 1;
if SeekEoln(f) then
begin
i := 1;
k := 1;
repeat
if dato[i] = '.' then
begin
delete(dato,i,1);
insert('.',dato,i - 1);
end;
i := i + 1;
until i > length(dato);
writeln(dato);
end;
end;
close(f);
end;

begin
clrscr;
nombre := 'c:\tp\MILCENT.TXT';
actual;
writeln;
cambia;
readln;
end.

{ archivo de testo creado con:
N180 G1 Z-4. F1000
N190 G3 X39.316 Y338.654 R168.428 F1000
N200 G1 Z6.
N210 G3 X38.165 Y336.621 R168.428
N220 X35.51 Y331.618 R177.123
N230 G1 Z-4.
N240 G3 X31.754 Y323.789 R177.123
N250 X11.147 Y211.063 R277.31
N260 X73.887 Y70.681 R184.202
N270 X158.587 Y23.878 R236.885
N280 X237.193 Y10.241 R294.086
N290 G1 Z6. }

el resto te lo dejo a ti.
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

RE:Ayuda Convertir MM a CM

Publicado por Miguel Angel Flores Mendoza (2 intervenciones) el 18/02/2011 22:38:42
Muchisimas gracias ramon... me has ayudado muchisimo!! ya lo tengo funcionando
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