Jump to content
php.lv forumi

pascal explode?


SkyD

Recommended Posts

Gan jau, ka te arī mīt vairāki pascal pratēji, tāpēc pajautāšu jums vai pascalā arī ir iespējams sadalīt informāciju, piemēram šādu: vards|uzvards|19.

PHP tas būtu ~ tā jauni_dati = explode("|", dati);

Ko varētu izvadīt šādi:

vards uzvards 19

 

Tad kā to var izdarīt iekš pascal ņemot datus no faila ?

Edited by SkyD
Link to comment
Share on other sites

Skaties uz Pos funkciju, ja nemaldos.

 

Un izgriež ar Copy funkciju, ja nemaldos.

 

(sliktākajā gadījumā taču pats varēji for (i=1..length) if i=='|' break uztaisīt tak) eh.. Vai vismaz manuāli atšķirt par string funkcijām...

Link to comment
Share on other sites

Sita briniskiga funkcija noder, ja vajag dabut ara kadu elementu no stringa ar konkretu indeksu.

 

// Parametri: [1] strings, no kura izvilkt elementu, [2] atdalosais simbols, [3] elementa indekss
function GetToken(aString, SepChar: string; TokenNum: Byte): string;
var
 Token: string;
 StrLen: Integer;
 Num: Integer;
 EndofToken: Integer;
begin
 StrLen := Length(aString);
 Num := 1;
 EndofToken := StrLen;
 while ((Num <= TokenNum) and (EndofToken <> 0)) do
 begin
EndofToken := Pos(SepChar, aString);
if EndofToken <> 0 then
begin
  Token := Copy(aString, 1, EndofToken - 1);
  Delete(aString, 1, EndofToken);
  Inc(Num);
end
else
  Token := aString;
 end;
 if Num >= TokenNum then
Result := Token
 else
Result := '';
end;

 

Piemers:

 

GetToken('Word1 Word2 Word3', 2, ' ') = 'Word2'
GetToken('Word1/Word2/Word3', 2, '/') = 'Word2'

Link to comment
Share on other sites

×
×
  • Create New...