Avatar billede supermichael Nybegynder
13. januar 2005 - 22:21 Der er 7 kommentarer og
1 løsning

Funktion der kompencere for php's explode

Findes der en funktion til delphi, der kan opdele en streng i flere dele. som f.eks. funktionen explode() til php?

Og hvor kan jeg finde en delphiside med funktionsliste, som f.eks. php.net?
Avatar billede delphi Nybegynder
13. januar 2005 - 22:35 #1
Nu kender jeg ikke en meter til PHP, men jeg antager, at der med Explode er tale om en kommando, der klipper et stykke ud af en streng.  I delphi bruger man Copy kommandoen.

Ex:
  A := 'ABCDEF';
  B := Copy(A, 2, 3);  // Resultat: B = 'BCD'
Avatar billede delphi Nybegynder
13. januar 2005 - 22:40 #2
Mht til en funktions oversigt, så har Delphi en udemærket indbygget help funktion.  Copy funktionen findes således i den sektion der omhandler "string handling routines"
Avatar billede supermichael Nybegynder
13. januar 2005 - 22:49 #3
explode funktionen fungere ved at en streng klippes over ved et hvis tegn eller bogstav.

$variabel = explode("+", "hej+med+dig");

der vil da komme følgende variabler $variabel[0] = "hej", $variabel[1] = "med" og $variabel[2] = "dig";
Avatar billede delphi Nybegynder
13. januar 2005 - 23:02 #4
Ok, det ville jeg gøre i en loop, alá:

SourceStr := 'Hej+med+dig';
While SourceStr<>'' do 
  Begin
    DividePos := Pos('+', SourceStr); 
    If DividePos=0 Then DividePos=MaxInt;  // Handles last word in Source

    DestStr := Copy(SourceStr, 1, DividePos-1);
    SourceStr := Copy(SourceStr, DividePos+1, MaxInt);
  End;

Kunne sikkert gøres smartere...
Avatar billede tolderlund Nybegynder
14. januar 2005 - 09:28 #5
var
  s: string;
  sl: TStringList;
  i: Integer;
begin
  s := 'hej+med+dig';
  sl := TStringList.Create;
  try
    sl.Delimiter := '+';
    sl.DelimitedText := s;
    for i := 0 to sl.Count - 1 do
      Memo1.Lines.Add(sl[i]);
  finally
    sl.Free;
  end;
Avatar billede doc404 Novice
14. januar 2005 - 09:52 #6
D7 (måske D6?) har følgende funktion

function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;

Ex:

ExtractStrings([','],[' '],PChar(Text),Memo.Lines);
Avatar billede delphi Nybegynder
14. januar 2005 - 17:14 #7
Tjaa, det kunne gøre smartere! :)

Der kan man bare se - det er ikke lige den slags string handling routines jeg benytter mest....


NIP
Avatar billede supermichael Nybegynder
14. januar 2005 - 18:53 #8
Hov.. undskyld. Jeg ville egenlig have givet jer begge point, men jeg tror vist jeg misforstod noget. doc404 i owe you one! :D
- men tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester