String vergleichen

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von mys3lf.

    String vergleichen

    Hallo an alle,
    Ich habe folgendes Problem,
    ich möchte gerne von einem String den momentanen Wert mit dem Wert des selben Strings eine halbe sekunde später vergleichen.
    Jedoch habe ich keine Idee wie ich da ran gehen soll.
    Vielleicht könnt ihr mir da ja ein wenig weiter helfen.
    Vieln Dank im vorraus.
    It's not a bug, it's a feature

    mys3lf schrieb:

    ich möchte gerne von einem String den momentanen Wert mit dem Wert des selben Strings eine halbe sekunde später vergleichen.

    Es böte sich also an, einen zweiten String zu verwenden, der alle "x" Sekunden auf den Wert des ersten Strings gesetzt wird.

    Insgesamt denke ich aber, dass du vlt eher beschreiben solltest, was du EIGENTLICH tun willst und nicht erklären, was du für eine "Lösung" hältst. Denn irgendwie klingt das ganze momentan etwas ... strange
    hey^^

    speicher doch den alten string in einen neuen string und vergleiche den neuen string mit dem neu erstellten string xD

    Also

    VB.NET-Quellcode

    1. Dim String1 as String
    2. Dim String2 as String
    3. Dim String3 as String
    4. String1 = "BLUB"
    5. String2 = String1
    6. If String3 = String2 Then
    7. 'Blub
    8. Else
    9. 'Blub
    10. End if


    Ist wie gesagt nur ein Beispiel
    Keine Ahnung welche Werte du verwendest ^^

    Mfg

    Skype
    Dann hau doch einen Timer rein und stell den Interval auf 500. 500 = Halbe sekunde

    Und die Strings haust du in ein label oder was auch immer du halt vor hast, damit du es siehst :P


    Sag uns halt was du vor hast, dann können wir dir mehr helfen^^
    Ok ich versuche das jetzt nochmal anders zu erklären.
    Ich bekomme von einem Externen Programm ein Array.
    Dieses Array splitte ich und weise es einem String zu. In meinem fall "winkel".
    Ich möchte diesen String vergleichen um feststellen zu können ob der winkel größer oder kleiner wird.
    It's not a bug, it's a feature
    Da ja immer gerne mathematische Operatoren in zusammenhang mit Strings genutzt werden hilft vlt. das weiter

    VB.NET-Quellcode

    1. If str = str + Time.Add(0.5, Unit.Second) Then




    So, mal ohne Spaß, ein String ändert sich ja nicht einfach so, der muss irgendwo zugewiesen werden und dort kannst du einhaken, BEVOR der String verändert wird, prüfst du ob der neue String, der der Variablen zugeordnet werden soll, sich verändert hat.

    Edit: Winkel ist normalerweise eine Zahl, welche den Grad des Winkels angibt. Strings kann man aber nicht auf größer oder kleiner prüfen. Also solltest du schonmal überlegen einen anderen Datentyp zu nutzen. Das von mir genannte System bleibt jedoch gleich. Vor der Zuweisung prüfen.

    mys3lf schrieb:

    Ich bekomme von einem Externen Programm ein Array.

    welchen Datentyp hat das Array?

    das könnte die Kernfrage sein.

    Wieviele Winkel sind da drin, in deinem Array? (etwa nur einer?)

    Winkel-angaben sind, wie Dodo schon sagte natürlich nur sinnvoll, als Werte vom DatenTyp Double behandelt zu werden.

    mys3lf schrieb:

    Dieses Array splitte ich und weise es einem String zu. In meinem fall "winkel".
    Ich möchte diesen String vergleichen um feststellen zu können ob der winkel größer oder kleiner wird.

    Ein Array "splitten"?
    "Winkel" klingt nach "Zahl". wieso speichert man das in einem String?

    input() as double
    winkel=input(3)
    select case alterwert
    case winkel
    ' gleich groß, mach was
    case > winkel
    ' alter wert war größer
    case < winkel
    ' kleiner
    end select
    alterwert = winkel

    so in der Art?

    VB.NET-Quellcode

    1. Dim winkel, pfad1 As String
    2. Dim w1() As String
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. pfad1 = Path.GetDirectoryName(Application.ExecutablePath)
    5. pfad1 = pfad1 + "wxz.exe"
    6. Dim start As New Process
    7. start.StartInfo.FileName = pfad1
    8. start.StartInfo.UseShellExecute = False
    9. start.StartInfo.RedirectStandardOutput = True
    10. AddHandler start.OutputDataReceived, AddressOf writeprocessoutput
    11. start.Start()
    12. start.BeginOutputReadLine()
    13. End Sub
    14. Private Sub writeprocessoutput(ByVal sendingprocess As Object, ByVal outline As DataReceivedEventArgs)
    15. If outline.Data IsNot Nothing Then
    16. Me.Invoke(Sub() Anweisung.AppendText(outline.Data & Environment.NewLine))
    17. End If
    18. i = Anweisung.Lines.Length
    19. If Anweisung.Lines.Length > 40 Then
    20. winkel = Anweisung.Lines(i - 2)
    21. w1 = Split(winkel, )
    22. winkel = w1(7)
    23. End If
    24. End Sub

    Das ist der Code mit dem ich den Winkel Wert beziehe.
    Kann mir denn keiner weiter helfen?
    It's not a bug, it's a feature

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mys3lf“ ()

    mys3lf schrieb:

    Kann mir denn keiner weiter helfen?

    Da binnich aber schwer gekränkt.

    Wir haben dir bereits von einer völlig sinnlosen Fragestellung zu einer ziemlich präzisen Fragestellung weitergeholfen - das ist mehr als die halbe Miete.

    guck, angenommen, dein externess Proggi liefert immer genau einen Winkel pro Output:

    VB.NET-Quellcode

    1. Dim pfad1 As String
    2. Dim winkels As New List(Of Double)
    3. Dim w1 As Double
    4. '...
    5. Private Sub writeprocessoutput(ByVal sendingprocess As Object, ByVal outline As DataReceivedEventArgs)
    6. If outline.Data Is Nothing Then Return
    7. Dim wNeu = Double.Parse(outline.Data, Globalization.CultureInfo.InvariantCulture)
    8. winkels.Add(wNeu)
    9. If winkels.Count > 40 Then
    10. If w1 <> wNeu Then
    11. 'sindse wohl unterschiedlich
    12. End If
    13. End If
    14. w1 = wNeu
    15. End Sub
    Du siehst: das Data wird von String nach Double umgewandelt, und dann werden die Winkelse als Double behandelt.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()