Jag har lyckats skriva en funktion som delar upp en sträng till en array of string. Men jag vill inte att koden ska bry sig om ifall det är ett, två eller 110 mellanslad mellan orden och inte hller om det är tab i mellan orden.
Hur ska jag göra det?
OCh finns det något bättre sätt att göra det här på?
type
TStringArray = array of String;
function Explode(S, Separator: String): TStringArray;
var
I: Integer;
buffer: string;
blocks: integer;
A: TStringArray;
begin
blocks := 0;
SetLength(A, blocks);
for i := 1 to length(S) do
begin
if S[i] = separator then
begin
SetLength(A, blocks+1);
A[blocks] := Buffer;
Buffer := '';
Inc(blocks);
end
else
Buffer := Buffer + S[i];
end;
// Add the last block to the array (if there is no separator on the end)
SetLength(A, blocks+1);
A[blocks] := Buffer;
Result := A;
end;
Jag tycker igen att du ska ta och kolla in hjälpen på ExtractStrings och TStrings. T.ex så används TStrings i ListBox för att lagra strängarna.
Med ExtractStrings så delar du upp en sträng i flera (som lagras i en TStrings), du väljer själv vad du ska dela strängen på för tecken och även om du vill att den ska hoppa över något speciellt tecken.
250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849