AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Recently used strings

Ein Thema von LkZ · begonnen am 26. Mai 2004 · letzter Beitrag vom 27. Mai 2004
Antwort Antwort
LkZ

Registriert seit: 26. Mai 2004
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Recently used strings

  Alt 26. Mai 2004, 20:50
Hi! ich hab eine funktion geschrieben(funktioniern tut sie noch nicht), die die "zuelezt verwendeten strings" in einer Liste anzeigt. Die strings, die in die Lisre eingefügt werden, haben alle einen "Counter",d.h. die strings bekommen eine interne Zahl mitgegeben, wenn sie ausgewählt werden. Dieser interne/unsichtbare Counter dient dazu dar, dass man später die Items in der Liste nach "meist verwendete strings" sortieren kann.
Hier der Code:

Delphi-Quellcode:
function Recent(s:string):string;
var Vorhanden:boolean;
    k:Integer;
    c:array[0..103] of Integer; {insgesamt/max. 103 strings, die in die Liste eingefägt werden können}
begin
  vorhanden:=false;
    for k:=0 to Detail2.ListBox1.Items.Count-1 do {Liste durchgehen}
     begin
      if s=Detail2.ListBox1.Items.Strings[k] then
      begin
       vorhanden :=true; {ist schon in der Liste vorhanden}
       c[k]:=c[k]+1; {den Counter eins erhöhen,}
       exit; {nicht in die Liste einfügen}
     end; {und raus}
     end;
   if vorhanden=false then {nicht vorhanden}
   begin
    c[i]:=1; {hier weiss ich nicht mehr weiter}
    inc(i); {nächstes Feld und DANN soll das nächste Feld auf 1 gesetzt werden}
   end;
 Detail2.ListBox1.Items.Add(s); {neu in die Liste einfügen}
 Result:=s;
end;
Kann sein, dass dieser Code ziemlich unprofessionell zu euch scheint; ich bin immer offen für neues

Danke MfG LkZ
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: Recently used strings

  Alt 26. Mai 2004, 21:00
aaalso: der entscheidendste fehler bei der sache, warum das nie nie nie klappen kann, ist, dass die variable zum zählen lokal ist. die musst du global oder von der form abhängig machen!

dann (nicht unbedingt nötig): schau die mal records und dynamische arrays an

dann musst du an der "problemstelle" rausfinden, was der höchste index bisher war, eins mehr nehmen, und dann an der stelle deinen wert im array um eins erhöhen. dazu könnte man eventuell eine weitere globale variable anlegen, oder einfach sagen, wo '' (leerstring) steht, ist der höchste index, oder bei dynamischen arrays könnte man mit "length" arbeiten.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#3

Re: Recently used strings

  Alt 26. Mai 2004, 21:01
Deine Beschreibung ist etwas zweideutig. Liefert die Funktion die zuletzt verwendeten, oder die am meisten verwendeten Strings?

MfG Pr0g
  Mit Zitat antworten Zitat
26. Mai 2004, 21:09
Dieses Thema wurde von "Daniel" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Recently used strings

  Alt 26. Mai 2004, 21:12
ich würde das ganze über TList machen. Hab mir vor ner weile auch so nen Counterobject gebastelt. Hab das für Statistik gebraucht So füge ich dem Counterobject zum Beispiel die Postleitzahl aller Händler hinzu und sehe dann am ende von wo die meisten händer kamen. Das ganze noch für bestellungen etc. Habs dann auch so gemacht das man ein Increment angeben kann so das man damit auch den umsatz pro händler zählen kann. So wird jede bestellung eines händlers hinzugefügt und als increment wird der Bestelltwert angegeben. Um schluss sehe ich dann wie groß der umsatz jedes händlers ist...
Angehängte Dateien
Dateityp: pas ucountobj.pas (4,9 KB, 2x aufgerufen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Recently used strings

  Alt 27. Mai 2004, 15:56
Moin lkz,

Du könntest, bei Verwendung von TListBox, die Objekte benutzen, die zu jedem StringList Eintrag gehören.

Kleines Beispiel:

Delphi-Quellcode:
var
  iWork : integer;

begin
  iWork := integer(ListBox1.Items.Objects[ListBox1.ItemIndex]);
  inc(iWork);
  ListBox1.Items.Objects[ListBox1.ItemIndex] := TObject(iWork);
end;

Die Hilfsvariable dient nur der Übersicht. Man könnte auch direkt einsetzen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz