Ho copiato delle celle vuote da Excel in una StringGrid ma Lazarus non
riconosce tali celle come vuote
Ho scritto il seguente codice ma non funziona:
for i:=2 to 17 do // da riscrivere
begin
for j:= 1 to StringGrid6.RowCount-1 do
begin
if StringGrid6.Cells[i,j]='' then
begin
StringGrid6.Cells[i,j]:= '0';
end;
end;
end;
Se invece manualmente ,dopo aver copiato le celle in una StringGrid, le cancello con il comando Canc tutto funziona.
Come dovrei modificare il codice?
Prova ad usare la funzione Trim:
if Trim(StringGrid6.Cells[i,j]) = '' then
ho risoltpo con questa funzione:
FUNCTION IsNumeric(s: STRING): boolean;
VAR
i: integer;
BEGIN
//TODO:Replace ',' with Systemdelemiter
Result := (length(s) > 0);
FOR i := 1 TO length(s) DO
IF NOT ((Char(s[i]) IN ['0'..'9']) or (Char(s[i]) = DecimalSeparator)
or (Char(s[i]) = '-') or (Char(s[i]) = '+')) THEN
BEGIN
Result := False;
exit;
END;
END;
Puoi provare allora:
var p: double;
if tryStrtoFloat(stringa, p) then
begin
//qui hai il valore contenuto nella stringa nella variabile p, sempre che sia un valore numerico
end;