StringGrid Inhalte prüfen
-
N'Abend zusammen
hab da ein Problem.
Benutze in meinem Programm ein StringGrid, welches mit Daten aus einer CSV Datei versorgt wird. Nun möchte ich prüfen, ob in den einzelnen Spalten nur das drin steht, was drin stehen darf. D.h. in der ersten Spalte dürfen nur alphanumerische Zeichenketten stehen und in der zweiten Spalte nur numerische. Tauchen in der zweiten Spalte jedoch auch alphanumerische Zeichen auf, so soll die Zelle farblich anders dargestellt (hervorgehoben) werden.
Ich benutze die TMS Komponente, bei der es ein Ereignis gibt (OnGetCellColor), mit der sowas in der Richtung möglich ist:
if ((ACol==2) && (ARow>0)) { if (StringGrid->Cells[ACol][ARow]=="4") AFont->Color=clGreen; if (StringGrid->Cells[ACol][ARow]=="6") AFont->Color=clBlue; if (StringGrid->Cells[ACol][ARow]=="8") AFont->Color=clBlack; if (StringGrid->Cells[ACol][ARow]=="12") AFont->Color=clRed; }
Sobald die angegebenen Zahlen im StringGrid auftauchen, werden sie farblich anders dargestellt.
Wie kann ich nun eine ganze Zeichenkette in einer Zelle prüfen, ob sie nur das enthält, was sie enthalten darf.
Bin für jede Hilfe dankbar.
-
entwededer du testest jedes einzelne Zeichen mit
isdigit(Zeichen) // KOmmas nciht vergessen
oder
bool IsNumber() { try { Denstring.ToDouble(); return true; } catch(...){} return false; }
-
Und noch ein allgemeiner Tip für die Problemanalyse und das Formulieren deiner Fragen: das Ganze hat offensichtlich nichts mit dem StringGrid zu tun, es geht einzig um das Prüfen eines Stringinhaltes.
Die langwierigen Erklärungen und den Codeausschnitt hättst du dir also sparen können, ausserdem hättest du bei Konzentration auf das eigentliche Problem sicher auch mehr Erfolg beim Benutzen der Suchfunktion gehabt. Ein Beispiel:
http://www.c-plusplus.net/forum/viewtopic.php?t=9036&highlight=string+zahlen
-
Danke!