Frage von zafirab19cdti, 6

Visual Basic: Programm Inhalt aktualisieren?

Schönen guten Morgen,

Eine frage, ich habe da ein Programm entwickelt, das eine listbox enthält mit integrierten links, es ist so, das manche links immer wieder aktualisiert werden oder neue hinzu kommen.

So und es ist so, ich möchte eine weitere version zu meinem programm erstellen, ich sag mal es geht hier um ein anderes design, und daher brauche ich eine möglichkeit, wie ich nur ein element die listbox,der inhalt und die dazugehörigen codes aktualisieren kann.

Warum brauche ich so eine möglichkeit, weil ich die alte version die auch aktuell ist weiterhin betreiben möchte, und beide versionen beinhalten ja die selbe listbox mit dem selben inhalt und den selben dazugehörigen code für die links.

Und da währe es nun Praktisch, wenn ich da irgent wie was machen könnte, das es da nur eine datei gibt dll oder irgent etwas, worauf beide versionen des programms einfach zugreifen können, den inhalt und die dazu gehörigen codes der listbox einliest und fertig.

ist da irgent was möglich wenn ja wie?

könnt ihr mir da helfen.

Antwort
von PWolff, 3

Wenn du eine ListBox schon von Hand gefüllt hast:

ListBox2.Items.Clear
ListBox2.Items.AddRange(ListBox1.Items)

Ansonsten kannst du eine Textdatei auswerten - wenn du z. B. in jeder Zeile einen Listeneintrag hast, wohl am einfachsten so:

Dim Einträge = File.ReadAllLine(dateiname, System.Text.Encoding.Default)
ListBox1.Items.Clear: ListBox1.Items.AddRange(Einträge)
ListBox2.Items.Clear: ListBox2.Items.AddRange(Einträge)

 (eine dll geht übrigens nicht so einfach - die enthält im wesentlichen Klassendefinitionen wie z. B. ListBox)

Kommentar von MarkusGenervt ,

@zafirab19cdti:

Mach Dir bei Bedarf noch einen CommandButton daneben (.Text = "..."), welcher einen URL-Auswahl-Dialog öffnet, dessen Ergebnis dann wiederum in eine INI-Datei gespeichert wird (danach die Liste neu laden).
Damit hast Du dann auch die Option, weitere variable Daten extern zu speichern.

INI's haben sich als Standard für solche Aufgaben (auch plattformübergreifend) etabliert und sind einfacher manuell zu überarbeiten, als beispielsweise XML-Dateien.
Die Registry geht auch als Speicherort und funktioniert ähnlich wie eine INI.
Allerdings ist es inzwischen ein echter Krampf, wie heutzutage die Registry vollgemüllt wird, denn um das Löschen von nicht mehr gebrauchten Einträgen kümmert sich einfach niemand und die Registry wird größer und größer und größer.

Aber das nur am Rande. ;-)

Kommentar von PWolff ,

Die Registry ist eingeführt worden als der Versuch, die INI-Dateien durch etwas einheitlicher handhabbares und leichter durch Backups zu erfassendes zu ersetzen.

Ergebnis: Der wesentliche Effekt ist, dass wir einen weiteren Ort für eine Müllhalde haben.

Das einheitlichere Handhaben der Registry liegt daran, dass eine Anwendung auf die Registry NUR noch über das Windows-API zugreifen kann. Es gab zwar ein API für INI-Dateien - funktionierte aus Anwendungssicht fast genauso wie das für die Registry -, aber das hat kaum einer genutzt, vielleicht weil's keiner gekannt hat. Wie hätte man auch drauf kommen sollen - INI-Dateien sind ja reine ASCII-Dateien. Also hat jeder sein eigenes (viereckiges) Rad erfunden, um INI-Dateien zu lesen und zu schreiben. Meistens hat das sogar funktioniert.

Kommentar von MarkusGenervt ,

LACH – Müllhalde trifft es so gut!

Nun ja, die Reg bietet ein differenziertes Type-Handling und unterstützt auch Arrays. Um dies auch in INI's zu nutzen musste ich mir schon echt einen abbrechen.

Aber die Get/WritePrivateProfile...-API's gibt es immer noch und damit habe ich mir schon unter Win16 meine DLL's gebastelt. Aber die ganzen Java- und .Net-Junkies werden sicher nie so tief in Windows eintauchen.

Und jetzt nutze ich INI's schon wieder unter Linux. Es ist einfach einfacher!

Windows muss immer so viel Verschlüsselungs-Blödsinn hinzu packen.
Diese ganzen .Net-Bibliotheken hatte ich bereits deutlich schlanker mit VB 3-6 erstellt, als bei M$ noch keiner davon geträumt hatte. (Eine Schande, dass ich diesen Zug verpennt habe!) Keine Ahnung, warum .Net so riesig ist.
Das ist inzwischen auch einer der Hauptgründe, warum dieses OS so dermaßen aufgebläht ist.
Unter Linux nutze ich gerade mal ein Fünftel der Platte für die gleichen Funktionen und mehr.

Aber das ist ein anderes Thema ;-)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten