Norbert Eder
Erfahrenes Mitglied
Ah, ich hab jetzt erst gesehen, dass du eigentlich in VB.NET programmierst. Na solltest du mit dem obigen Sourcecode von mir Probleme haben, kann ichs dir schon übersetzen.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
War nur ein gut gemeinter Hinweis meinerseits.Vamp7771 hat gesagt.:Anfangs habe ich die Daten anonymisiert, jedoch mache ich das nicht mehr, da diese Daten nur testdaten sind, wie ich rausgefunden habe.
..
Man sollte die Werkzeuge einsetzen wozu sie am besten geeignet sind.Vamp7771 hat gesagt.:Natürlich kann ich das Programm genauso gut in SQL schreiben, ich sehe da gar keine Probleme.
Damit hast du natürlich recht. Eine weitere Möglichkeit wäre einen FileSystemWatcher auf diese Datei zu legen, dass Änderungen sofort eingelesen werden, sollten sich eben Änderungen ergeben. Hier liegt definitiv Optimierungs-Potential.mage hat gesagt.:Im übrigen sollte die XML Datei vielleicht nur einmal bei Start des Programmes oder der Analysefunktion geladen werden.
...boese, boese ... du wolltest doch nicht etwa fuer jeden Element-Zugriff das Dokument nochmal neu parsen/laden ... doc.Load("C:\\mytaglist.xml");Code:public string GetDescriptionFromTag(string tag) { XmlDocument doc = new XmlDocument(); doc.Load("C:\\mytaglist.xml"); XmlNode xn = doc.SelectSingleNode("/editaglist/tag[@short='" + tag + "']"); if (xn != null) return xn.InnerText; else return "not found"; }
Public Class Translator
Private Shared translations As Hashtable
Private Shared isOpen As Boolean = False
Private Shared fname As String = Nothing
Public Shared Sub Filename(ByVal name As String)
fname = name
End Sub
Private Shared Sub ReadEntries()
If fname <> Nothing Then
translations = New Hashtable
Dim doc As XmlDocument = New XmlDocument
doc.Load(fname)
Debug.WriteLine("Open File")
Dim xnl As XmlNodeList = doc.SelectNodes("/edittaglist/tag")
If Not xnl Is Nothing And xnl.Count > 0 Then
Dim i As Integer
Dim xn As XmlNode
Dim att As XmlAttribute
For i = 0 To i = xnl.Count
xn = xnl(i)
att = xn.Attributes(0)
If Not att Is Nothing Then
If Not translations.Contains(att.InnerText) Then
translations.Add(att.InnerText, xn.InnerText)
End If
End If
Next
isOpen = True
End If
End If
End Sub
Public Shared Function GetText(ByVal tag As String) As String
If Not isOpen Then
ReadEntries()
End If
Return translations(tag)
End Function
End Class
Translator.Filename(Application.StartupPath + "\taglist.xml")
MessageBox.Show(Translator.GetText("LIN"))
<?xml version="1.0" encoding="utf-8" ?>
<edittaglist>
<tag short="LIN">Line item number</tag>
<tag short="WTF">What the fuck</tag>
<tag short="RTFM">Read the fucking manual</tag>
</edittaglist>
Imports System.IO
[...]
Private FSW As New FileSystemWatcher
[...]
Private Sub FSW_Init()
'Initializes FileSystemWatcher by giving it attributes
'Pfadnamen des zu überwachenden Objektes / Ordners
FSW.Path = Path
'Falls ein File überwacht werden soll, hier den FileNamen angeben
FSW.Filter = File
'Startet praktisch die Überwachung
FSW.EnableRaisingEvents() = True
'Damit wird gesagt, auf was er alles reagieren soll, in unserem Falle
'Attributveränderungen (Schreibgeschützt, etc.), Erstellungszeitpunkt, letzter
'Schreibzugriff, Namensänderung oder Größenänderung
FSW.NotifyFilter = NotifyFilters.Attributes Or _
NotifyFilters.CreationTime Or _
NotifyFilters.LastWrite Or _
NotifyFilters.FileName Or _
NotifyFilters.Size
'AddHandlers for Changes @ the watched File
'Hier erstellst du praktisch Handler, die ihm sagen, was er machen soll, wenn das
'rote Ereignis passiert, in unserm Fall, springt er nach unten
AddHandler FSW.Changed, AddressOf FSW_Change
AddHandler FSW.Renamed, AddressOf FSW_Name
End Sub
Public Sub FSW_Change(ByVal source As Object, ByVal e As FileSystemEventArgs)
AutomaticOpen()
End Sub
Public Sub FSW_Name(ByVal source As Object, ByVal e As RenamedEventArgs)
StareonPathAndFile = e.FullPath
AutomaticOpen()
End Sub