Dateinamen einer Listbox schneller einlesen

Für allgemeine Fragen zur Programmierung mit PureBasic.
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

CNESM hat geschrieben:Old_Bill hat damit nix zu tun. Der fördert das Ding "nur", wie auch Tobias Runde.
Hmm... er hat dir doch mal ne DLL oder so in deinem alten grauen Forum geschickt. :|
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Hi,

ja das mit dem Verständnisproblem ist mir bekannt :allright:

Ok, ok, hab aber jetzt noch eine Frage, die mir echt nicht klar ist. InsertElement(LinkedList()) fügt ja ein neues Element ein, leider geschieht das immer vor dem aktuellen in der Liste. Ist es auch möglich die Elemente immer nach dem letzten einzufügen.

Habe nämlich eine Listbox mit folgenden Inhalt:

Bild.bmp
Icon.ico
Exe.exe

wenn ich das ganze nun einlese, wird das ganze aber ja so gespeichert.

Exe.exe
Icon.ico
Bild.bmp

Ich hab das jetzt so gemacht, das ich einfach erst das letzte Objekt der Listbox einlese, also mit Exe.exe anfangen, so stehen die dann auch wieder richtig herum in der Struktur, aber naja , ist halt net so die gute Lösung, gelle.
Hmm... er hat dir doch mal ne DLL oder so in deinem alten grauen Forum geschickt.
Mhh - keine Ahnung. :mrgreen:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

[c]InsertElement()[/c] fügt ein Element vor dem aktuellen ein.
[c]AddElement()[/c] fügt ein Element nach dem aktuellen ein (steht auch in der Hilfe).
[c]ChangeCurrentElement()[/c] springt zu einem per Adresse (Pointer)angegebenen Element.
Beispiel:

Code: Alles auswählen

NewList bla.l()

For a.l = 1 To 10
  If AddElement(bla())
    bla() = a
    
    If a = 4
      *Element4 = @bla()
    EndIf
  EndIf
Next

Debug bla()

ChangeCurrentElement(bla(), *Element4)

Debug bla()
Bild
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Hi,

das wirkt bei mir nur bedingt. Wenn ich deinen Code 100% übernehme, wird das ganze so in die Liste eingeschrieben:

Code: Alles auswählen

Exe.exe 
Bild.bmp 
Icon.ico 
Ursprung:

Code: Alles auswählen

Bild.bmp 
Icon.ico 
Exe.exe 
Aufgrund dessen, hab ich das auch so komisch gelöst, da irgendwie der Wurm in der Sache ist /:->
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Poste mal bitte einen Beispielcode, der das Problem zeigt.
Wenn du etwas an eine Liste anhängen willst, musst du natürlich vorher mit [c]LastElement()[/c] an den Schluss der Liste springen. Soll heißen: Wenn du konsequent nur [c]AddElement()[/c] nacheinander aufrufst, werden auch alle Elemente nacheinander in der richtigen Reihenfolge abgelegt. Damit kann es keine Probleme oder Ausnahmen geben.
Bild
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Hi,

also irgendwie verhält sich das ganze echt komisch.

Teste ich das ganze auf meinen Laptop und meinen Firmenrechner, läuft alles wieder normal. Gibts bei ME wirklich so viele Unterschiede?

Hab das ganze auch jetzt mal getestet und siehe da, sobald ich den Code unter Win 2000 Proff. als Code starte, läuft das alles ok, nur unter ME gibts oftmals ein sehr unvertändliches Verhalten.

Code habe ich derweil nicht dabei, server gerade vom Laptop.

Sofern es ja jetzt geht, hat sich das ganze auch erledigt, werde halt nacher einfach von 2000 aus die EXE erstellen.
Antworten