![]() |
ladebalken beim laden von Wörterbuch
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 :zwinker: grüße aus dem scönen österreich Nico |
Re: ladebalken beim laden von Wörterbuch
hmm... ich würde das mit dem Ladebalken so machen:
Delphi-Quellcode:
Ist nicht getestet, hab ich grad "live" geschrieben
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 |
Re: ladebalken beim laden von Wörterbuch
Delphi-Quellcode:
/edit
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 so bin ja draufgekommen das bei explode das problem ist aber explode funktion kann ich den code nirgendwo einbauen :(
Delphi-Quellcode:
keine ahnung wie ichs machen soll :(
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; grüße Nico =) |
Re: ladebalken beim laden von Wörterbuch
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. |
Re: ladebalken beim laden von Wörterbuch
Zitat:
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 :thumb: grüße Nico |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz