# [Visual Basic] Auslesen von Daten



## Bibba (16 Juni 2009)

Hallo alle zusammen 

Und zwar geht es um folgendes. Ich schreibe per Visual Basic Programme für Produkte die gestanzt werden müssen.

Jetzt gibt es Produkte die nur in der Länge gedreht werden müssen. Dass heißt im einen Produkt steht nur die "Formel" für die Berechnung der 1. Stanzung. In dem anderen Produkt steht "Laenge - Formel".

Jetzt will ich ein kleines Programm schreiben welches die Formel ausließt und vergleicht, und falls nötig die Stanzung einfach zu drehen. 

Das Programm schreibe ich aus dem Sinn, da es bis zu 10000 Stanzungen sind, und alle ab zuändern ist etwas aufwendig. Auch wenn es am Ende nur zu Copy & Paste kommt, kann es sein dass sich Fehler einschleichen.

Hier einmal ein Beispiel welcher Teil der gedreht wird:

```
[SIZE=1]POSITIONEN(1, Laufindex) = 15 + Offset_Matrize_X[/SIZE]
```
Und zwar wenn ich jetzt so die Position ausgebe wird mir sofort der Zahlenwert ausgegeben. Ich müsste es aber so hin bekommen, dass wenn ich die Position 1 des Laufindex ausgebe ich die Formel "15 + Offset_Matrize_X" bekomme.

Kann mir jmd. helfen wie ich das am besten angehe? 

MFG Jens


----------



## Human (16 Juni 2009)

Warum machst du das nicht einfach so, dass du sagt, dass das eine Typ a ist und das andere Typ b und wenn es Typ a ist rechnest du mit der einen Formel und wenn es Typ b ist rechnest du mit der anderen Formel?


----------



## Bibba (16 Juni 2009)

Wie schon gesagt, es sind rund 10000 Stanzungen die ich komplett abändern müsste


----------



## Gebs (16 Juni 2009)

Hallo Bibba,

wie liegen denn Deine Formeln vor? In einer Text-Datei, Excel oder Hardcodiert im VB-Programm?

Grüße
Gebs


----------



## Bibba (16 Juni 2009)

Ich hab alle Formeln in Visual Basic geschrieben.

So wie oben der kleine Ausschnitt sind alle Formeln für die Länge in X-Position geschrieben.


----------



## Gebs (16 Juni 2009)

Hallo Bibba,

die Formeln zur Laufzeit aus dem VB-Code auszulesen ist IMHO nicht möglich,
aber wenn die Formeln alle hintereinanderstehen, kannst Du sie recht einfach 
in eine Excel-Datei kopieren und mit LTRIM und RTRIM in ihre Bestandteile
zerlegen. In Deinem VB-Programm kannst Du dann diese Datei öffnen und den
Vergleich durchführen.

Grüße
Gebs


----------



## Bibba (16 Juni 2009)

Naja, dann wäre das ich müsste in Excel rund 10000 Formeln einarbeiten und auslesen. Dass wäre zu viel Arbeit :/

Naja wenn dass nicht geht, dass ich den Wert so wie er in der Variablen hinterlegt ist auszulesen, werd ich wohl ein extra Modul machen müssen wo ich alle 10000 Stanzungen per Hand selber bearbeiten werde.


----------



## Gebs (16 Juni 2009)

Hallo Bibba,

heisst das, die Formeln stehen im VB-Code verteilt?
Es besteht auch die Möglichkeit die Formeln in eine Text-Datei zu kopieren.
Diese wird dann von einem VB-Programm Zeile für Zeile ausgelesen, der 
Vergleich mit der Position(1,x) gemacht und dann kann man die Formel 
ermitteln.

Grüße
Gebs


----------



## Bibba (16 Juni 2009)

Ich hab hier mal einen größeren Ausschnitt aus den Stanzungen.
So ist es vortlaufend programmiert:

```
[SIZE=1]'**************************************************************************************************[/SIZE]
[SIZE=1]'* Postitionberechnung - Stanznr. 9 - Rechteck 8.5 x 8.5[/SIZE]
[SIZE=1]'**************************************************************************************************[/SIZE]
[SIZE=1]Offset_Stempel_X = Stempel_9_Offset_X[/SIZE]
[SIZE=1]Offset_Stempel_Y = Stempel_9_Offset_Y[/SIZE]
[SIZE=1]If Dicke < 1.85 Then[/SIZE]
[SIZE=1]   Offset_Matrize_X = Matrize_9_Offset_X[/SIZE]
[SIZE=1]   Offset_Matrize_Y = Matrize_9_Offset_Y[/SIZE]
[SIZE=1]   Else[/SIZE]
[SIZE=1]       If Dicke >= 1.85 And Dicke <= 2 Then[/SIZE]
[SIZE=1]         Offset_Matrize_X = Matrize_109_Offset_X[/SIZE]
[SIZE=1]         Offset_Matrize_Y = Matrize_109_Offset_Y[/SIZE]
[SIZE=1]       Else[/SIZE]
[SIZE=1]         If Dicke >= 2.5 And Dicke <= 3 Then[/SIZE]
[SIZE=1]           Offset_Matrize_X = Matrize_209_Offset_X[/SIZE]
[SIZE=1]           Offset_Matrize_Y = Matrize_209_Offset_Y[/SIZE]
[SIZE=1]         End If[/SIZE]
[SIZE=1]       End If[/SIZE]
[SIZE=1]End If[/SIZE]
[SIZE=1]P = 2[/SIZE]
[SIZE=1]Q = P_580 + 1[/SIZE]
[SIZE=1]For JI = 1 To Q Step 1[/SIZE]
[SIZE=1]   For JJ = 1 To P Step 1[/SIZE]
[SIZE=1]       Laufindex = Laufindex + 1[/SIZE]
[SIZE=1]       ReDim Preserve POSITIONEN(Array_Spalten, Laufindex)[/SIZE]
[SIZE=1]       POSITIONEN(0, Laufindex) = Laufindex[/SIZE]
[SIZE=1]       POSITIONEN(1, Laufindex) = X_Prog + Laenge - (500 + ((JI - 1) * 580)) + Offset_Matrize_X[/SIZE]
[SIZE=1]       POSITIONEN(2, Laufindex) = Breite - 64 - ((JJ - 1) * 20) - Offset_Stempel_Y[/SIZE]
[SIZE=1]       POSITIONEN(3, Laufindex) = Breite - 64 - ((JJ - 1) * 20) - Offset_Matrize_Y[/SIZE]
[SIZE=1]       POSITIONEN(4, Laufindex) = Offset_Matrize_X[/SIZE]
[SIZE=1]       POSITIONEN(5, Laufindex) = Breite - 64 - ((JJ - 1) * 20)[/SIZE]
[SIZE=1]       POSITIONEN(6, Laufindex) = 0[/SIZE]
[SIZE=1]       POSITIONEN(7, Laufindex) = 9[/SIZE]
[SIZE=1]       POSITIONEN(8, Laufindex) = 9[/SIZE]
[SIZE=1]   Next[/SIZE]
[SIZE=1]Next[/SIZE]
[SIZE=1]'**************************************************************************************************[/SIZE]
[SIZE=1]'* Postitionberechnung - Stanznr. 13 - Rechteck 8.5 x 8.5[/SIZE]
[SIZE=1]'**************************************************************************************************[/SIZE]
[SIZE=1]P = 2[/SIZE]
[SIZE=1]For JJ = 1 To P Step 1[/SIZE]
[SIZE=1]   Laufindex = Laufindex + 1[/SIZE]
[SIZE=1]   ReDim Preserve POSITIONEN(Array_Spalten, Laufindex)[/SIZE]
[SIZE=1]   POSITIONEN(0, Laufindex) = Laufindex[/SIZE]
[SIZE=1]   POSITIONEN(1, Laufindex) = X_Prog + Laenge - (500 + (P_580 * 580) + X) + Offset_Matrize_X[/SIZE]
[SIZE=1]   POSITIONEN(2, Laufindex) = Breite - 64 - ((JJ - 1) * 20) - Offset_Stempel_Y[/SIZE]
[SIZE=1]   POSITIONEN(3, Laufindex) = Breite - 64 - ((JJ - 1) * 20) - Offset_Matrize_Y[/SIZE]
[SIZE=1]   POSITIONEN(4, Laufindex) = Offset_Matrize_X[/SIZE]
[SIZE=1]   POSITIONEN(5, Laufindex) = Breite - 64 - ((JJ - 1) * 20)[/SIZE]
[SIZE=1]   POSITIONEN(6, Laufindex) = 0[/SIZE]
[SIZE=1]   POSITIONEN(7, Laufindex) = 9[/SIZE]
[SIZE=1]   POSITIONEN(8, Laufindex) = 13[/SIZE]
[SIZE=1]Next[/SIZE]
```
 
Dass mit der *.txt ist das selbe wie mit der Excel Liste, 10000 Stanzungen hineinkopieren.


----------



## Gebs (16 Juni 2009)

So wie es aussieht, bleibt Dir wohl leider ncihts anderes übrig, als viel Arbeit 
reinzustecken, egal auf welche Weise Du es lösen wirst.

Grüße 
Gebs


----------

