
''Con questa funzione trovo le coppie caratteri+numeri nel rigo letto
Public Function DividiStringa(i As Long, Str As String)
Dim RigoOrizzontale As Long
Dim DivSt As String
DivSt = ""
RigoOrizzontale = 1 ' inizia dalla cella 1
For i = 1 To Len(Str)
If (Asc(Mid(Str, i, 1)) >= 48 And Asc(Mid(Str, i, 1)) <= 57) Or Mid(Str, i, 1) = "." Or Mid(Str, i, 1) = "-" Then ' qui leggo il valore numerico
If DivSt <> "" Then
DivSt = DivSt & Mid(Str, i, 1) ' qui compongo la stringa
End If
Else
If DivSt <> "" Then
Foglio2.Cells(RigoVerticale, RigoOrizzontale) = DivSt
RigoOrizzontale = RigoOrizzontale + 1
DivSt = ""
DivSt = DivSt & Chr(10) & Mid(Str, i, 1)
Else
DivSt = DivSt & Chr(10) & Mid(Str, i, 1)
End If
End If
Next i
Foglio2.Cells(RigoVerticale, RigoOrizzontale) = DivSt
''eseguo un controllo per verificare la grandezza massima delle celle sugli assi X e Y
If RigoOrizzontale >= RigoOrizzonataleMax Then
RigoOrizzonataleMax = RigoOrizzontale
End If
RigoVerticaleMax = RigoVerticale
End Function |
Public Function DividiStringa(i As Long, Str As String)
Dim RigoOrizzontale As Long
Dim DivSt As String
DivSt = ""
RigoOrizzontale = 1 ' inizia dalla cella 1
For i = 1 To Len(Str)
If (Asc(Mid(Str, i, 1)) >= 48 And Asc(Mid(Str, i, 1)) <= 57) Or Mid(Str, i, 1) = "." Or Mid(Str, i, 1) = "-" Then ' qui leggo il valore numerico
If DivSt <> "" Then
DivSt = DivSt & Mid(Str, i, 1) ' qui compongo la stringa
End If
Else
If DivSt <> "" Then
Foglio2.Cells(RigoVerticale, RigoOrizzontale) = DivSt
RigoOrizzontale = RigoOrizzontale + 1
DivSt = ""
DivSt = DivSt & Chr(10) & Mid(Str, i, 1)
Else
DivSt = DivSt & Chr(10) & Mid(Str, i, 1)
End If
End If
Next i
Foglio2.Cells(RigoVerticale, RigoOrizzontale) = DivSt
''eseguo un controllo per verificare la grandezza massima delle celle sugli assi X e Y
If RigoOrizzontale >= RigoOrizzonataleMax Then
RigoOrizzonataleMax = RigoOrizzontale
End If
RigoVerticaleMax = RigoVerticale
DividiStringa= qui quello che deve ritornare alla funzione
End Function |
Private Sub CommandButton12_Click()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Dim testo As String
Dim t As String
Dim RigoVerticale
Foglio2.Cells.Clear
t = ActiveWorkbook.path & "File.tap" '(file completo di percorso)
Dim A, K, Ar As String
Open t For Input As #1
Do While Not EOF(1)
Line Input #1, testo 'testo linea per linea dal file
Ar = Ar & testo & Chr$(13)
A = Split(Trim(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(testo, _
"F", " F"), "G", " G"), "M", " M"), "S", " S"), "T", " T"), "X", " X"), "Y", " Y"), "Z", " Z")))
RigoVerticale = RigoVerticale + 1
For K = 0 To UBound(A)
Cells(RigoVerticale, K + 1).Value = Chr$(10) & A(K)
Next
Loop
Close #1 ' chiudo il file e libero la memoria
GCode = Ar
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
|
