AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ladebalken beim laden von Wörterbuch
Thema durchsuchen
Ansicht
Themen-Optionen

ladebalken beim laden von Wörterbuch

Ein Thema von Nicodius · begonnen am 30. Apr 2006 · letzter Beitrag vom 2. Mai 2006
Antwort Antwort
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

ladebalken beim laden von Wörterbuch

  Alt 30. Apr 2006, 21:34
Tag leute


es gibt da so nen wettbewerb(bzw hats gegeben) und da mich das thema interessiert hat hab ich eine lösungsvariante eines teilnehmers von php auf delphi übertragen und experimentiere grade viel herum

es geht um wortmischmasch in normale setze umwandel also

aus

Farnz buat Msit wird Franz baut Mist.

funktioneiren tut das ganze per wörterbuch etc - aber ich werde den delphicode dann eh opensource posten.


und zwar ist das wörterbuch 100 kb groß udn muss mit explode in zwei listen gefüllt werden.

Delphi-Quellcode:
var i : Integer;
begin
  Virtlist := TStringlist.Create;
  Virtlist.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'buch.txt');
  vlis := explode('*', Virtlist[0]);
  vlis1 := explode('*', Virtlist[0]); //vlis1 hat die korrekten werte;
  for i := low(vlis) to high(vlis) do
  begin
    vlis[i] := sortWirrWarr(vlis[i]);
  end;

ich würde gerne dem benutzer zeigen wie lange der vorgang noc hdauert - habe aber keinen blassen schimmer wie - und gefunden habe ich leider auch nichts(zwar gabs das mit ner imagevariante aber naja - das war mit einer schleife bei mir ist das problem dass das wirklich lange dieser explode code ist.

an threads habe ich scho ngedacht allerdings - ists das wert?


grüße Nico


ps.: bitte nicht die threadvariante jetzt als hauptvorschlag verwenden - ich komm mit dem thema einfach nicht zurecht und würdm ich freuen wenn ich heute ohen kopfzerbrechen das pogramm vollenden kann


grüße aus dem scönen österreich

Nico
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: ladebalken beim laden von Wörterbuch

  Alt 30. Apr 2006, 22:51
hmm... ich würde das mit dem Ladebalken so machen:

Delphi-Quellcode:
var i : Integer;
begin
  Virtlist := TStringlist.Create;
  Virtlist.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'buch.txt');
  vlis := explode('*', Virtlist[0]);
  vlis1 := explode('*', Virtlist[0]); //vlis1 hat die korrekten werte;
  LadeLeiste.Max := high(vlis); //LadeLeiste = ProgressBar
  for i := low(vlis) to high(vlis) do
  begin
    vlis[i] := sortWirrWarr(vlis[i]);
    LadeLeiste.Position := i;
  end;
  LadeLeiste.Position := 0; //wenn fertig dann die Leiste auch wieder zurücksetzen
Ist nicht getestet, hab ich grad "live" geschrieben
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#3

Re: ladebalken beim laden von Wörterbuch

  Alt 30. Apr 2006, 23:23
Delphi-Quellcode:
var i : Integer;
begin
  Virtlist := TStringlist.Create;
  Virtlist.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'buch.txt');
  vlis := explode('*', Virtlist[0]);
  vlis1 := explode('*', Virtlist[0]); //vlis1 hat die korrekten werte;
  LadeLeiste.MaxValue := high(vlis); //LadeLeiste = ProgressBar
  for i := low(vlis) to high(vlis) do
  begin
    vlis[i] := sortWirrWarr(vlis[i]);
    LadeLeiste.Progress := i;
    Application.ProcessMessages;
  end;
  LadeLeiste.Progress := 0; //wenn fertig dann die Leiste auch wieder zurücksetzen
/edit

so bin ja draufgekommen das bei explode das problem ist

aber explode funktion kann ich den code nirgendwo einbauen


Delphi-Quellcode:
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray;
var
  SepLen: Integer;
  F, P: PChar;
  ALen, Index: Integer;
begin
  SetLength(Result, 0);
  if (S = '') or (Limit < 0) then Exit;
  if Separator = 'then
  begin
    SetLength(Result, 1);
    Result[0] := S;
    Exit;
  end;
  SepLen := Length(Separator);
  ALen := Limit;
  SetLength(Result, ALen);

  Index := 0;
  P := PChar(S);
  while P^ <> #0 do
  begin
    F := P;
    P := AnsiStrPos(P, PChar(Separator));
    if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
    if Index >= ALen then
    begin
      Inc(ALen, 5);
      SetLength(Result, ALen);
    end;
    SetString(Result[Index], F, P - F);
    Inc(Index);
    if P^ <> #0 then Inc(P, SepLen);
  end;
  if Index < ALen then SetLength(Result, Index);
end;
keine ahnung wie ichs machen soll

grüße Nico =)
Nico Müller
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: ladebalken beim laden von Wörterbuch

  Alt 1. Mai 2006, 10:25
Hallo Nico,

mein Rat an dich: speichere die Wortliste gleich im passenden Format und forme sie nicht bei jedem Programmaufruf mit Explode() um. Wenn die Wörter schon als Zeilen einer Textdatei vorliegen, dann kannst du sie in vernachlässigbarer Zeit in eine StringList einlesen, die an die Stelle des dynamischen StringArray treten kann.

Grüße vom marabu

PS: Kannst du auch noch nach der Feier überdenken - alles Gute zu deinem Geburtstag.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#5

Re: ladebalken beim laden von Wörterbuch

  Alt 2. Mai 2006, 08:23
Zitat von marabu:
PS: Kannst du auch noch nach der Feier überdenken - alles Gute zu deinem Geburtstag.
danke

also vielen dank für den tipp - ich wär da alleine nicht draufgekommen, obwohls eigentlich sehr logisch ist denke ich

vielen dank auch diesbezüglich


grüße Nico
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:48 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