Hallo,
bin dann doch wesentlich früher als gedacht am Ende mit meinem können.
Es geht um folgendes, ich habe eine Maske auf der 6 textboxen nebeneinander 4x untereinander aufgelistet werden.Dort lade ich Parameter einer Datenbank rein.
Typische Datenbank sieht so aus:
900 180.00 200.0 290.0 0.00 0.00
900 0.0 0.0 0.0 0.00 0.00
900 250.0 250.0 290.0 0.00 0.00
900 250.0 250.0 290.0 0.00 0.00
900 40.00 60.0 60.0 0.00 0.00
900 40.0 60.0 60.0 0.00 0.00
900 40.0 60.0 60.0 0.00 0.00
Die Datenbank sieht aber auch in 2 Texfelden klassisch so aus:
NameSet1 = default set name
NameSet2 = default set name
NameSet3 = default set name
;--------------------------------------------------------
Code = 0
Info = Converted from dbk_8888 to 8888.dbk
Modify = 2016-05-15
byUser =
Reason = Conversion 1. rob generation to 2. generation
LastRun = -
Caption = Speed Flow PattAr AtomAr Rotat. Hi-Vot
Set1 = 600 300.00 140.00 220.00 0.000 0.000
Set2 = 600 150.00 180.00 220.00 0.000 0.000
Set3 = 600 00.00 0.00 0.00 0.000 0.000
nun möchte ich ein Offset auf den 2. Wert(Flow Rate) in der Datenbank geben, aber nur sofern dieser Wert nicht Null ist. Ich möchte ein Textfeld haben in dem ich die gewünschte Prozentzahl eingebe und dann soll er bitte diese auf den Wert in der Aktuellen Datenbank draufrechenen und runden, dies dann in die Textbox schreiben sodass ich das abspeichern kann. Dafür habe ich mit hilfe des Forums schon die Vorarbeit geleistet, also wie es funktioniert mit dem Runden wie ich das möchte.
Ich denke ich muss bestimmt splitten nach einem leerzeichen bei der Datenbankvariante 1, aber die Anzahl der Leerzeichen kann unterschiedlich sein. Das ist Problem Nummer 1
Und Problem Nummer 2 ist dass ich bei der Datenbankvariante 2 überhaupt nicht weis wie ich das bewerkstelligen soll.
Habt ihr ne Idee?
Ist es am besten eine Funktion für das Runden zu schreiben, wenn ja, wie gestalte ich diese am besten?
Wäre froh wenn Ihr mir helfen könntet.
Edit:
Ich habe mal versucht ne Funktion draus zu bauen, die klappt auch, aber wie verschachtele ich denn den txtgrundwert.text, den ich ja selbst eingegeben habe hier, was ja später der 2. wert der Datenbank sein soll in die Funktion rein. oder hab ich da nen denkfehler?
bin dann doch wesentlich früher als gedacht am Ende mit meinem können.
Es geht um folgendes, ich habe eine Maske auf der 6 textboxen nebeneinander 4x untereinander aufgelistet werden.Dort lade ich Parameter einer Datenbank rein.
Typische Datenbank sieht so aus:
900 180.00 200.0 290.0 0.00 0.00
900 0.0 0.0 0.0 0.00 0.00
900 250.0 250.0 290.0 0.00 0.00
900 250.0 250.0 290.0 0.00 0.00
900 40.00 60.0 60.0 0.00 0.00
900 40.0 60.0 60.0 0.00 0.00
900 40.0 60.0 60.0 0.00 0.00
Die Datenbank sieht aber auch in 2 Texfelden klassisch so aus:
NameSet1 = default set name
NameSet2 = default set name
NameSet3 = default set name
;--------------------------------------------------------
Code = 0
Info = Converted from dbk_8888 to 8888.dbk
Modify = 2016-05-15
byUser =
Reason = Conversion 1. rob generation to 2. generation
LastRun = -
Caption = Speed Flow PattAr AtomAr Rotat. Hi-Vot
Set1 = 600 300.00 140.00 220.00 0.000 0.000
Set2 = 600 150.00 180.00 220.00 0.000 0.000
Set3 = 600 00.00 0.00 0.00 0.000 0.000
nun möchte ich ein Offset auf den 2. Wert(Flow Rate) in der Datenbank geben, aber nur sofern dieser Wert nicht Null ist. Ich möchte ein Textfeld haben in dem ich die gewünschte Prozentzahl eingebe und dann soll er bitte diese auf den Wert in der Aktuellen Datenbank draufrechenen und runden, dies dann in die Textbox schreiben sodass ich das abspeichern kann. Dafür habe ich mit hilfe des Forums schon die Vorarbeit geleistet, also wie es funktioniert mit dem Runden wie ich das möchte.
VB.NET-Quellcode
- txtGrundwert.Text = Replace(txtGrundwert.Text, ".", ",")
- Dim percent As Integer = CInt(txtPercent.Text)
- Dim grundwert As Integer = CInt(txtGrundwert.Text)
- Dim ergebnis As Integer = CInt(grundwert * (percent / 100))
- Dim offset As Integer = ergebnis + grundwert
- txtErgebnis.Text = CType(offset, String)
- Dim betrag As Double = CDbl(txtErgebnis.Text)
- txtgerundet.Text = CType(10 * Math.Round(betrag / 10, 0), String)
- Dim mitoffset As Double = CDbl(txtgerundet.Text)
- txtgerundet.Text = String.Format("{0:F2}", mitoffset)
- txtgerundet.Text = Replace(txtgerundet.Text, ",", ".")
Ich denke ich muss bestimmt splitten nach einem leerzeichen bei der Datenbankvariante 1, aber die Anzahl der Leerzeichen kann unterschiedlich sein. Das ist Problem Nummer 1
Und Problem Nummer 2 ist dass ich bei der Datenbankvariante 2 überhaupt nicht weis wie ich das bewerkstelligen soll.
Habt ihr ne Idee?
Ist es am besten eine Funktion für das Runden zu schreiben, wenn ja, wie gestalte ich diese am besten?
Wäre froh wenn Ihr mir helfen könntet.
Edit:
Ich habe mal versucht ne Funktion draus zu bauen, die klappt auch, aber wie verschachtele ich denn den txtgrundwert.text, den ich ja selbst eingegeben habe hier, was ja später der 2. wert der Datenbank sein soll in die Funktion rein. oder hab ich da nen denkfehler?
VB.NET-Quellcode
- Private Function offsetgeben(txt As String) As String
- Dim Wert = txtGrundwert.Text
- Replace(Wert, ".", ",")
- Dim percent As Integer = CInt(txtPercent.Text)
- Dim grundwert As Integer = CInt(Wert)
- Dim ergebnis As Integer = CInt(grundwert * (percent / 100))
- Dim offset As Integer = ergebnis + grundwert
- Dim Ergebniswert = CType(offset, String)
- Dim betrag As Double = CDbl(Ergebniswert)
- Dim fertiggerundet = CType(10 * Math.Round(betrag / 10, 0), String)
- Dim mitoffset As Double = CDbl(fertiggerundet)
- fertiggerundet = String.Format("{0:F2}", mitoffset)
- fertiggerundet = Replace(fertiggerundet, ",", ".")
- Return fertiggerundet
- End Function
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gottric“ ()