I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
takker. det virker fint. men vil lige være sikker på, at jeg forstår det:
I første linje efter begin fjernes mellemrum,ik? (1) Herefter laves stringlisten. (2) Linje 3 forstår jeg ikke helt. (3) Det, som vist er kommet hen i stringlisten, sorteres. (4) Edit-teksten bliver til den sorterede tekst eller hvad? (5)
(1) Korrekt (2) Korrekt (3) ExtractStrings proceduren opdeler en tekst og putter hver del ind i stringlisten, den første parameter (',') angiver at teksten skal deles ved hver komma. Anden parameter benyttes ikke. 3. parameter er teksten dvs. Edit.Text. 4. parameter er den StringList som de enkelte del tekster skal puttes ind i. Efter at have kørt ExtractString ar du en StringList (SL) som indeholer f.eks. 14 18 04 19 02 (4) Sorted sættes nu til true og stringlisten indeholder nu: 02 04 14 18 19 En strignlist har en property (CommaText) som giver dig en enkelt string som indeholder alle linier fra stringlisten adskilt med et komma, dvs. her får du så: 02,04,14,18,19
// Konvertér strengene til heltal før der sammenlignes -> heltalssortering function CompareAsInt(aList : TStringList; aIndex1, aIndex2 : integer) : integer; begin result := CompareValue(StrToIntDef(aList[aIndex1],0),StrToIntDef(aList[aIndex2],0)); end;
// Delphi 2006+ understøtter for-in konstruktionen procedure AddStrings(aList : TStringList; const aStrings : array of string); var st : string; begin aList.BeginUpdate; try for st in aStrings do aList.Add(st); // st bliver pudsigt nok read only i en for-in finally aList.EndUpdate; end; end;
procedure TForm1.ButtonClick(Sender: TObject); var List: TStringList; begin List := TStringList.Create; try AddStrings(List,['14','18','4','19','2']); // Kald min macro
List.CustomSort(CompareAsInt); // Kald vores egen sammenligningsprocedure ListBox.Items.Assign(List); // Kopiér til listbox finally List.Free; end; end;
Synes godt om
Ny brugerNybegynder
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.