Podziel stringa na części funkcją Split z B4P (kod poniżej)
[code]
procedure TfrmMain.Split(Value: string; var Output: TArrSplitTemp);
var iCount : Integer;
procedure Explode;
var
Found : Integer;
begin
SetLength(Output, iCount+1);
Found := Pos(KeyChar, Value); // najpierw nastepuje odnalezienie szukanego znaku
{ pozniej za pomoca funkcji Copy nastepuje skopiowanie czesci danych do elementu
tablicy }
Output[iCount] := Copy(Value, 1, Found -1);
Delete(Value, 1, Found); // skopiowane juz dane zostaja ze stringa usuniete
Inc(iCount); // zwiększenie licznika
Found := Pos(KeyChar, Value); // ponowne odszukanie znaku KeyChar
if Found > 0 then Explode; // w razie znaleienia ponownie wywolaj te procedure
end;
begin
{
Funkcja Split powoduje rozdzielenie danych ze stringa na kilka(kilkanascie)
elementow i przypisanie jej do tablicy Output. Procedura ta wywoluje inna - Explode,
ktora to jest procedura rekurencyjna (o rekurencji mozesz poczytac m.in na stronie
www.4programmers.net/algo/ ) i to ona ma kluczowe zadanie rozdzielenie lancucha.
}
iCount := 0;
SetLength(Output, 1); // okreslenie liczby elementow tablicy dynamicznej
Insert(KeyChar, Value, Length(Value)+1); // dodanie na samym koncu lancucha ze stalej KeyChar
Explode; // wywolanie funkcji rekurencyjnej
end;
[/code]
TArrSplitTemp zadeklaruj w sekcji type ten sposób:
TArrSplitTemp = array of string;
A zmienną globalną KeyChar tak:
KeyChar : Char = ' '; //spacja w cudzysłowach
Później chyba se poradzisz. Łańcuch będzie podzielony na części i wciśnięty do tablicy. Pamiętaj tylko że np. 1, 5 i 6 komórka będą zawiarały znaki "(" i ")".