VB Zahlenreihe

Lobo

Level-1
Beiträge
45
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

folgendes Problem:

Ich möchte eine Zahlenreihe (z.B.: 5, 10, 15...) in einem Labelfeld anzeigen, kann mir jemand den Befehl zum anzeigen nennen.

Bei meiner Lösung wird immer nur der letzte Wert angezeigt (Ich breche bei hundert ab).

Meine Idee ist, dass am Ende meiner Schleife der aktuelle Wert hinter dem letzten mit angezeigt und nicht überschrieben wird.

mfg, Lobo.
 
Dann mach aus der Zahl einen String und häng diesen hinten an einen String, welchen du anzeigst.
 
@ Ralle

Hallo, genau das könnte die Lösung sein. Aber wie heißt der Befehl zum anhängen.

Ich habe das so verstanden dass ich bei jedem Schleifendurchlauf die Zahl (also dann den String) an den vorherigen String hängen kann.

@ Larry

Hallo, ich möchte nur ein Labelfeld zum anzeigen benutzen.

dank an alle
 
Nun ja, du kannst das auf 2 Wegen lösen:

1. In der SPS. IEC-Funktionen aus der Library benutzen. Da gibt es Funktionen zum Wandeln in String und Funktionen zur Stringmanipulation (Anhängen, ausschneiden etc.) Am Einfachsten läßt sich das mit SCL programmieren.

2. Im Panel mit VBA, dazu kann vielleicht Larry mehr sagen, ich bin nicht so der VBA-Progger ;).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier mal ein kleines Beispiel in SCL:

Code:
FUNCTION_BLOCK FB10

Title = 'FIS-Modulname'
//
// FIS-Modulname 
// Zerlegung des Auftragsfilesnamens
// in seine einzelnen Bestandteile
// und zusammensetzen von Präfix und YYMMTT 
// zum FIS-Modulnamen
// 
Version : '1.0'
author  : Ralle
name    : FIS_MOD
family  : SYSTEM

VAR_INPUT
  // Eingangsparameter
  Auftragname: STRING[20];
  Praefix: STRING[2];
END_VAR

VAR_OUTPUT // Ausgangsparameter
  FISname: STRING[10];
END_VAR

VAR_TEMP
    // temporäre Variablen
  FISNummer: STRING[8];
END_VAR

//Aufbau des Filenamens
//YYMMTTxxxxxEyyyyyyyy

FISNummer := '        ';
FISNummer := MID(IN := Auftragname ,L := 8 ,P := 13);

FISname := CONCAT(IN1 := Praefix 
                 ,IN2 := FISNummer
                  );

;
END_FUNCTION_BLOCK
MID und CONCAT sind FC26 und FC2 aus der Standard-Library, IEC-Funktions. Du mußt noch das Trennzeichen dazwischen setzen, ein Komma und immer an deinen Gesamtstring anhängen. Außerdem noch das Wandeln in String. Ein Problem kann es werden, wenn du folgendes machen willst:

Gesamtstring als INOUT

Gesamtstring := Gesamtstring + ';' + Addstring; (hier nur mal im übertragenen Sinn mit +!)

Wenn das nicht gehen sollte, dann mußt du vorher evtl. Folgendes machen:

Tempstring := Gesamtstring;
Gesamtstring := Tempstring + ';' + Addstring;

Ich hatte das Problem einmal, weiß aber nicht mehr, ob das in einem FB oder FC so war! Also probieren.
 
Dann nehme ich den Ball mal gleich auf ...
Code:
AnzeigeString = CStr(Lastwert) + " - " + CStr (NewWert)
LastWert = NewWert
Das wäre die einfachste Form.
Ansosnsten würde ich doch schon gerne sehen, was du dir da ausgedacht hast ...

Gruß
LL
 
@Ralle

erstmal Danke. Ich arbeite allerdings rein in VB.

@LL

dass könnte die Lösung sein. Ich werde dass gleich mal ausprobieren.

danke danke:)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@LL

hier mein Code:

Dim nZAHL
Dim NEUZAHL
Dim ALTZAHL
Dim ZAHLREIHE

Private Sub Rechne_Click()
NEUZAHL = 0
nZAHL = Zahl.Text

If NEUZAHL < 100 Then

Do
NEUZAHL = NEUZAHL + nZAHL
lblZahlenreihe.Caption = CStr(nZAHL) + "," + CStr(NEUZAHL)
Loop While NEUZAHL < 100

End If

End Sub

Allerdings wird mir bei dieser Lösung nur die erste und letzte Zahl angezeigt und nicht alle, genau da liegt mein Problem im voraus Danke.

Mfg, Lobo :-D
 
Einfach noch ein paar Zeilen eingefügt/modifiziert:
@LL

hier mein Code:

Dim nZAHL
Dim NEUZAHL
Dim ALTZAHL
Dim ZAHLREIHE
Dim Text As String

Private Sub Rechne_Click()
NEUZAHL = 0
nZAHL = Zahl.Text

Text = ""
If NEUZAHL < 100 Then

Do
NEUZAHL = NEUZAHL + nZAHL
Text = Text & ", " & CStr(NEUZAHL)
Loop While NEUZAHL < 100
lblZahlenreihe.Caption = Text
End If

End Sub

Allerdings wird mir bei dieser Lösung nur die erste und letzte Zahl angezeigt und nicht alle, genau da liegt mein Problem im voraus Danke.

Mfg, Lobo :-D
 
Hi
Versuch das mal

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Rechne_Click()
Dim nZAHL As Integer
Dim NEUZAHL As Integer
Dim ALTZAHL As Integer
Dim ZAHLREIHE As Integer
Dim Text As String
NEUZAHL = 0
nZAHL = 5
Text = ""

Do
NEUZAHL = NEUZAHL + nZAHL
Text = Text & ", " & CStr(NEUZAHL)
With lblZahlenreihe
.Caption = Text
.Refresh
End With
Sleep 50
Loop While NEUZAHL < 100
End Sub

Hier noch die Form als JPG


c:\temp\zahlenreihe\form.jpg



Gruß

Joee Dancer
 
Zurück
Oben