Zum Inhalt springen

funrecycler

Tipps und Tutorials

Primäres Menü
  • Startseite
  • Start
  • 2010
  • November
  • 19.
  • vb.net – Programmparameter auslagern

vb.net – Programmparameter auslagern

iang 19. November 2010 4 Minuten gelesen

Des öfteren steht man vor dem Problem, gewisse Parameter in einen erstellten Programm zu ändern. Solche Parameter können zum Beispiel die IP Adresse oder der Port zu einer Datenbank sein. Das geschriebene Programm soll ein gewisses Maß an Flexibilität bieten und möglichst auch mit anderen Datenbanken Verbindung aufnehmen können. Hat man die Verbindungsdaten fest im Programm verankert, kommt man um eine Änderung und Neuerstellung nicht herum. Praktischer ist es an dieser Stelle, variable Konfigurationsdaten in eine Textdatei auszulagern. Vorzüglicher weise nennt man diese Datei config.ini und speichert alle nötigen Informationen zum Beispiel nach folgenden Schema: db_server=192.168.0.20 db_port=3386 db_database=databasename db_user=username db_pwd=passwort … .. Natürlich kann man sich auch einen anderes Schema ausdenken und zum Beispiel anstatt = ein anderes Trennzeichen verwenden. Wichtig an dieser Stelle ist nur, dass ein Trennzeichen den Wert von einen bestimmten Feld trennt.  Die weiter unten beschrieben Funktionen zum auslesen der Config Daten benötigen ein klare Trennung zwischen Feldern und deren Eigenschaften. db_pwd …. Natürlich ist es riskant, Passwörter im Klartext in einer Textdatei zu speichern. Um eventuellen Missbrauch zu vermeiden, sollte man sich im klaren sein, ob es ein Sicherheitsrisiko darstellt, wenn Dritte das Passwort in Erfahrung bringen. Programmiert man zum Beispiel einen simplen Client, der nur Daten darstellt und somit nur Select Abfragen auf bestimmte Tabellen in einer Datenbank ausführen darf, so ist das Risiko gering. Ein weitere Möglichkeit wäre, das Passwort mit einer eigenen Verschlüsselung zu versehen. Den Zugriff auf die Parameter erhält man über 2 Funktionen. In der ersten Funktion wird die Config.ini per Streamreader in ein globales Array geladen und steht somit Programm weit zur Verfügung. Praktischerweise lädt man die Config beim Programmstart. Ebenfalls ist ein späteres Nachladen denkbar, ein Neustart der Anwendung für eine Config Änderung ist dann nicht mehr notwendig. Die zweite Funktion fragt das Array nach einen Feld ab und liefert dessen Wert zurück.

Public config(100,1) As String

globales Zweidimensionales Array mit 100 möglichen Einträgen


'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'funktion - config einlesen	'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Public Sub func_read_config
Dim fso As New IO.StreamReader(path.GetDirectoryName(Application.ExecutablePath) & "\config.ini")
Dim readline As String
Dim cfg_split() As String
Dim sub_counter As String
Do
    readline=fso.ReadLine
    If Not (readline Is Nothing) or readline <> " " Then
        If not mid(s,1,1) = "//" or not s = " " Then
            try
                cfg_split = split(readline,"=")
                    config(sub_counter,0) = cfg_split(0)
                    config(sub_counter,1) = cfg_split(1)
            Catch
            End try
        End If
   End If
   sub_counter += 1
Loop Until readline Is Nothing
fso.Close
End Sub

Per Streamreader wird die Config.ini geladen > Do Loop liest zeilenweise die Datei > Prüfung ob die Zeile leer ist oder ein Kommentar gefunden wurde > Zeile wird getrennt durch = > Feld wird den Config Array(x,0) zugewiesen, Wert wird den Config Array(x,1) zugewiesen

Call func_read_config

Durch Aufruf der Funktion wird die Config.ini eingelesen. Alle Parameter befinden sich nun in dem Config Array und lassen sich nun verwenden. Allerdings weiß man nicht an welcher Position im Array sich der gesuchte Wert befindet. Für die Suche benutzt man folgende Funktion.


'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'funktion - config arry lesen und angeforderte variable zurückgeben
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Public Function func_read_config_ary(sub_cfg_name)
Dim sub_cfg_setting As String = " "
For x = 0 To 100
    If (config(x,0)) = sub_cfg_name Then
        sub_cfg_name = config(x,1)
    End If
Next
If sub_cgf_setting = " " then
    return "no data"
else
    return sub_cfg_name
end if
End Function

sub_cfg_name enthält das zu suchende Feld > über die For Schleife wird geprüft ob die aktuelle Position im Array den gesuchten Feld entspricht > bei Übereinstimmung wird der Wert in der sub_cfg_setting Variable gespeichert > zum Schluss noch geprüft ob ein Wert gefunden wurde, falls kein Wert gefunden wurde, wird ein "no data" zurückgegeben. Möchte man nun einen Wert eines bestimmten Parameters abfragen, dann kann man dies wie folgt erledigen:

Public mysql_server As String = func_read_config_ary("mysql_server")

Wie man sehen kann, rufe ich die IP Adresse für den Mysql Server während der Erstellung der mysql_server Variable ab. Ein direkte Nutzung ist so in den meisten Fällen möglich.

Beitragsnavigation

Zurück: Danny MacAskill – „Way Back Home“ – NEW street trials riding short film
Weiter: und das Holodeck kommt doch

Verwandte Geschichten

wetterGW2

Davis Vantage Pro2 im Smart Home: ein kürzerer Weg für die eigenen Wetterdaten

iang 10. Oktober 2026
ChatGPT-Bild-4.-Okt.-2026-18_58_22

ARISS/ISS-SSTV unter Ubuntu empfangen: SDRangel mit Doppler-Korrektur, PipeWire und QSSTV

iang 4. Oktober 2026
syno

Synology: Benutzerpasswort per SSH ändern

iang 9. September 2026
Neueste Beiträge
  • Davis Vantage Pro2 im Smart Home: ein kürzerer Weg für die eigenen Wetterdaten
  • ARISS/ISS-SSTV unter Ubuntu empfangen: SDRangel mit Doppler-Korrektur, PipeWire und QSSTV
  • Synology: Benutzerpasswort per SSH ändern
  • CHIRP-Unterstützung für den Yaesu FT-991A
  • Meshcore nRF52840 OTA Firmware update. Repeater
Archive
  • Oktober 2026
  • September 2026
  • Juli 2026
  • Februar 2026
  • November 2025
  • Oktober 2025
  • August 2025
  • Februar 2024
  • Januar 2024
  • Oktober 2023
  • Juli 2023
  • Januar 2023
  • Juni 2020
  • April 2020
  • Januar 2020
  • August 2019
  • Mai 2019
  • März 2019
  • Dezember 2018
  • November 2018
  • Oktober 2018
  • September 2018
  • Juni 2014
  • Mai 2014
  • April 2014
  • März 2014
  • Januar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013
  • Juli 2013
  • April 2013
  • März 2013
  • Januar 2013
  • Dezember 2012
  • November 2012
  • September 2012
  • August 2012
  • Juli 2012
  • Juni 2012
  • Mai 2012
  • April 2012
  • März 2012
  • Februar 2012
  • Januar 2012
  • Dezember 2011
  • November 2011
  • Oktober 2011
  • September 2011
  • August 2011
  • Juli 2011
  • Juni 2011
  • Mai 2011
  • April 2011
  • März 2011
  • Februar 2011
  • Januar 2011
  • Dezember 2010
  • November 2010
  • Oktober 2010
  • September 2010
  • August 2010
  • Juli 2010
  • Juni 2010
  • Mai 2010
  • April 2010
  • März 2010
  • Februar 2010
  • Januar 2010
  • Dezember 2009
  • November 2009
  • Oktober 2009
  • September 2009
  • August 2009
  • Juli 2009
  • Juni 2009
  • Mai 2009
  • April 2009
  • März 2009
Kategorien
  • Allgemein
  • Amateurfunk
  • Android
  • AVR
  • CNC
  • Computer & Technik
  • Datenleck
  • Games
  • Grafik
  • GSM
  • Hardware
  • Kniffe und Tricks
  • Linux
  • Mac
  • meshcore
  • Mikrokontroller
  • misc
  • Politik
  • Programmieren
  • Reviews
  • Software
  • Technik, Trends & News
  • Techniknews
  • Tools
  • Tutorial
  • Video
  • Webseiten
  • yvotd

Das hast du vielleicht versäumt

wetterGW2

Davis Vantage Pro2 im Smart Home: ein kürzerer Weg für die eigenen Wetterdaten

iang 10. Oktober 2026
ChatGPT-Bild-4.-Okt.-2026-18_58_22

ARISS/ISS-SSTV unter Ubuntu empfangen: SDRangel mit Doppler-Korrektur, PipeWire und QSSTV

iang 4. Oktober 2026
syno

Synology: Benutzerpasswort per SSH ändern

iang 9. September 2026
chirp

CHIRP-Unterstützung für den Yaesu FT-991A

iang 21. Juli 2026
Urheberrecht © Alle Rechte vorbehalten. | MoreNews von AF themes.