GATOtico escribió:Bueno, aunque no entiendo el lenguaje al 100 por cien, ese codigo va por muy buen camino , pero ¿¿no me decias ant0n que no habia instrucciones para manejar cadenas???
Lo que yo decia es que no habia ninguna instruccion predefinida para hacr todo eso.
Waninkoko escribió:No se si sera algo como esto. :S
var
Fila, tmp: string;
i: integer;
Numero[0..65536]: array of integer;
begin
i := -1;
// Suponiendo que en Fila tenemos ya una fila con numeros separados por espacios
repeat
i := i+1;
// Copiamos hasta al siguiente espacio
tmp := Copy(Fila, 0, pos(' ', Fila)-1);
// Borramos lo copiado
Delete(Fila, 1, pos(' ', Fila));
// Convertimos el string en un integer y lo almacenamos
Numero[i] := StrToInt(tmp);
until
// La accion se repite hasta que no haya ningun espacio mas
posex(' ', Fila) = -1;
end;
No se si eso rulara xD
El que yo tengo es mu parecido. solo m faltaba esa duda d como forzar el tipo d dato a integer.
Pero ahora tengo otro problema. Como se cuando se termina el string? es decir por ejemplo en C si no ocupas todas las posiciones pues se pone al final el \0 pero en pascal no se. No se si me he explicado bien. A ver si m podeis exar un cable. Gracias por todo ya:D
EDITO:Este es l codigo que tengo pero aun no va... m da error al forzar el tipo. n el strtoint ese.
procedure LeerMatriz(var mat:tmatriz; var N:integer);
Var aux1, aux2: integer;
Var fil,aux3: string;
Begin
For aux:=1 to N do
Begin
Write('Introduzca la fila ', aux1,' de la matriz:');
Readln(fil);
For aux2:=1 to N do
Begin
aux3:=copy(fil,1,pos(' ' , fil)-1);
delete(fil,1,pos(' ',fil));
mat[aux1, aux2] := StrToInt(aux3);
End;
End;
End;