Problema en Lazarus al Separar cifra en numeros reales con coma flotante contenidas archivo .csv
Publicado: 26 Agosto, 2010 - 00:59 Problema en Lazarus al Separar cifra en numeros reales con coma flotante contenidas archivo .csv
Estoy desarrollando un programa en Lazarus Freepascal.
Tengo un archivo ".csv" con casi 10.000 lineas como esta:
"00:00:11",7531,645,"11,7","0,0000117","TEST"
Consegui y modifiqué un algoritmo "Explode" que logra desglosar cada dato separado por coma "," y lo guarda en un arreglo de la siguiente manera:
DielectricDischarge
00:00:11
7531
645
11
7
0
0000117
TEST
function Explode ( Separator: Char; S: string ) : TArrayString;
var
i: Integer;
str: string[255];
R: TArrayString;
begin
SetLength(R,0);
str := '';
for i := 1 to Length(S) do
begin
if ((S[i] = Separator) or (i = Length(S))) then
begin
if (i = Length(S)) then
begin
str := str + S[i];
end;
SetLength(R,Length(R) + 1);
R[Length(R) - 1] := str;
str := '';
end
else
begin
str := str + S[i];
end;
end;
Result := R;
end;El problema que tengo, es que no consigo desglosar una cifra en numeros reales juntas sin que me las separe por la coma flotante...
Deberia de obtener:
11,7
0,0000117
He probado usar StringReplace, Pos y alguna que otra condición sin lograr nada en concreto!!!
Les agradezco de antemano cualquier ayuda... Saludos!
- 567 lecturas


http://www.esdebian.org/foro/42249/titulos-hilos-que-comienzan-problema
Dudo mucho de que alguien te pueda echar una mano con eso, haberlos hailos pero ...
Algun foro mas especifico habra.
¡Hola!
Lo que podrías hacer es tratar modificar previamente en el archivo esas comas que te molestan con Sed. Fíjate si este hilo te sirve para algo:
http://www.esdebian.org/foro/41209/modificar-archivo-csv
Lo que se me ocurre es que cambies todas las comas que están entre dos comillas (",") por puntos y comas. Luego retocas la función un poco y con suerte lo puedes lograr.
¡Saludos!
Reemplaza previamente las comas dentro de los comillas por un caracter distinto e inusual por ejemplo \, luego efectua la funcion y vuelve a reemplazar \ por la coma
Por último por darte otra opción, puedes diferenciar en el bucle cuando leas el carácter " para que no devuelva el control al bucle que busca comas hasta que encuentres la siguiente "
No se admiten hilos que empiezan con: "Problemas ..."
Cerrado.