Witam,
mam problem w jednej kolumnie z funkcją StringReplace(). W trzech różnych kolumnach mam liczby zapisane w taki sposób, np.:
2 000 600
2 000 m
1 400
Aby móc dokonać konwersji StrToInt muszę pozbyć się zbędnych spacji i literki 'm' (jeżeli występuje na końcu). W dwóch kolumnach rozwiązałam ten problem za pomocą kodu (kod dla jednej z kolumn):
for i:=1 to StringGrid1.RowCount-1 do
begin
d := StringGrid1.Cells[4,i];
if d[Length(d)] = 'm' then
begin
p := Cut(d, Length(d)-2);
StringGrid1.Cells[4,i] := p;
m := StringReplace(p, ' ', '', [rfReplaceAll]);
StringGrid1.Cells[4,i] := m;
end
else
begin
m := StringReplace(d, ' ', '', [rfReplaceAll]);
StringGrid1.Cells[4,i] := m;
end;
end;
I wszystko cacy. W trzeciej kolumnie liczby występują tylko ze spacjami w środku (nie ma przypadku, że 'm' jest na końcu), więc próbuję to rozwiązać w analogiczny sposób:
for i:=1 to StringGrid1.RowCount-1 do
begin
d := StringGrid1.Cells[1,i];
m := StringReplace(d, ' ', '', [rfReplaceAll]);
StringGrid1.Cells[4,i] := m;
end;
Niestety bezskutecznie. Nie mam pojęcia dlaczego, ale program w ogóle nie odnajduje w tej kolumnie spacji. Jeżeli próbuję ją zamienić na jakikolwiek znak, to nic się nie zmienia. A jeśli np. próbuję zmienić wszystkie zera na 'x' to już działa.
Czy ktoś wie dlaczego tak jest? Co jest nie tak?