Private Sub Command1_Click() strstreng = "DetteErEnTestStrengG" a = 0 For i = 1 To Len(strstreng) Select Case Mid(strstreng, i, 1) Case "A" To "Z", "Æ", "Ø", "Å" If a = 1 Then List1.AddItem tek$ tek$ = "" a = 0 End If If a = 0 Then a = a + 1 tek$ = Mid(strstreng, i, 1) End If Case Else tek$ = tek$ & Mid(strstreng, i, 1) End Select Next i List1.AddItem tek$ End Sub
Dim MyString As String Dim MyStringArray() As String Dim i As Integer Dim j As Integer Dim CharCode As Byte Dim ArraySize As Byte
MyString = Text1.Text If Len(MyString) > 2 Then j = 1 For i = 2 To Len(MyString) CharCode = Asc(Mid(MyString, i, 1)) If CharCode > 64 And CharCode < 91 Then ArraySize = ArraySize + 1 ReDim Preserve MyStringArray(ArraySize) MyStringArray(ArraySize - 1) = Mid(MyString, j, i - j) j = i End If Next i End If
If j < Len(MyString) Then ArraySize = ArraySize + 1 ReDim Preserve MyStringArray(ArraySize) MyStringArray(ArraySize - 1) = Mid(MyString, j, Len(MyString) - j + 1) End If
PS: min løsning tager ikke højde for ÆØÅ (forglemmelse), og mikkers tager ikke højde for at første bogstav altid skal opfattes som stort, selvom det er lille.
Begge dele kan du jo så rette,og bruge den løsning du bryder dig bedst om (jeg synes vi begge har fortjent points ;o)
martin_moth -->> der er lidt problemmer med din kode... hvis jeg skriver HHO retunerer den kun H og H men ikke O... Please help... jeg er ikke specielt god til VB...
Bær lige over med mig engang... Jeg er ikke den store kemiker, faktisk ville det være synd at sige at jeg overhovedet kan huske noget fra dengang... Men ville følgende ikke være nemmere...
Private Sub Command1_Click() Dim mystringarray() As String Dim strstreng As String Dim a As Integer Dim tek As String
strstreng = "H2SO4He5" a = 0 For i = 1 To Len(strstreng) Select Case Mid(strstreng, i, 1) Case "A" To "Z", "Æ", "Ø", "Å" If a = 1 Then ArraySize = ArraySize + 1 ReDim Preserve mystringarray(ArraySize) mystringarray(ArraySize - 1) = tek$ tek$ = "" a = 0 End If If a = 0 Then a = a + 1 tek$ = Mid(strstreng, i, 1) End If Case Else tek$ = tek$ & Mid(strstreng, i, 1) End Select Next i ArraySize = ArraySize + 1 ReDim Preserve mystringarray(ArraySize) mystringarray(ArraySize - 1) = tek$ tek$ = "" For i = LBound(mystringarray) To UBound(mystringarray) List1.AddItem mystringarray(i) Next i End Sub
mikker: Selvom du ikke er kemiker, hvor mange grundstoffer (du ved, dem fra det der periodiske system som bruges verden over), tror du anvender bogstaverne Æ, Ø og Å
Så har jeg endnu engang præsteret at blande mig i ting jeg burde holde mig fra :O)
Private Sub Command1_Click() Dim mystringarray() As String Dim strstreng As String Dim a As Integer Dim tek As String Dim strval As String Dim mH, mO, mS, mHe As Integer mH = 1 ' lad os sige at molarmassen for H er 1 bare for sjov mO = 2 mS = 3 mHe = 4
'strstreng = "H2SO4He12" strstreng = "H2SO4He2" ' 2*1 + 1*3 + 4*2 + 2*4 = 2+3+8+8 = 21 'strstreng = "HHO" a = 0 For i = 1 To Len(strstreng) Select Case Mid(strstreng, i, 1) Case "A" To "Z", "Æ", "Ø", "Å" If a = 1 Then ArraySize = ArraySize + 1 ReDim Preserve mystringarray(ArraySize) mystringarray(ArraySize - 1) = tek$ tek$ = "" a = 0 End If If a = 0 Then a = a + 1 tek$ = Mid(strstreng, i, 1) End If Case Else tek$ = tek$ & Mid(strstreng, i, 1) End Select Next i ArraySize = ArraySize + 1 ReDim Preserve mystringarray(ArraySize) mystringarray(ArraySize - 1) = tek$ tek$ = "" For i = LBound(mystringarray) To UBound(mystringarray)
sogstreng = mystringarray(i) For pos = 1 To Len(sogstreng) Select Case Mid(sogstreng, pos, 1) Case 0 To 9 strval = strval & Mid(sogstreng, pos, 1) Case Else molstreng = molstreng & Mid(sogstreng, pos, 1) End Select Next pos gang = 0 + Val(strval) If gang = 0 Then gang = 1 Select Case molstreng Case "H" Text1 = (Val(Text1) + (gang * mH)) DoEvents Case "S" Text1 = (Val(Text1) + (gang * mS)) DoEvents Case "O" Text1 = (Val(Text1) + (gang * mO)) DoEvents Case "He" Text1 = (Val(Text1) + (gang * mHe)) DoEvents Case Else End Select strval = "" molstreng = "" Next i End Sub
Med to textboxe: text1 og txtsog samt 1 command: command1 Ja så kan man jo næsten lave et helt lille kemiker program ud af det. Hvad med små knapper -> en for hvert grundstof. Så kan man blot trykke på knappen og finde ud af om dette grundstof kan sættes på det 'molekyle' ? man er ved at lave? Altså ligesom at der kan er plads til 2*H og 1* O i H2O..
Nu plaprer jeg vist, men er det ikke iorden med 39 i feber? Vis lidt medlidenhed med en syg mand :O)
Private Sub Command1_Click() Dim mystringarray() As String Dim strstreng As String Dim a As Integer Dim tek As String Dim strval As String Dim mH, mO, mS, mHe As Integer mH = 1 ' lad os sige at molarmassen for H er 1 bare for sjov mO = 2 mS = 3 mHe = 4 strstreng = Text2 'strstreng = "H2SO4He12" 'strstreng = "H2SO4He2" ' 2*1 + 1*3 + 4*2 + 2*4 = 2+3+8+8 = 21 'strstreng = "HHO" a = 0 For i = 1 To Len(strstreng) Select Case Mid(strstreng, i, 1) Case "A" To "Z", "Æ", "Ø", "Å" If a = 1 Then ArraySize = ArraySize + 1 ReDim Preserve mystringarray(ArraySize) mystringarray(ArraySize - 1) = tek$ tek$ = "" a = 0 End If If a = 0 Then a = a + 1 tek$ = Mid(strstreng, i, 1) End If Case Else tek$ = tek$ & Mid(strstreng, i, 1) End Select Next i ArraySize = ArraySize + 1 ReDim Preserve mystringarray(ArraySize) mystringarray(ArraySize - 1) = tek$ tek$ = "" For i = LBound(mystringarray) To UBound(mystringarray)
sogstreng = mystringarray(i) For pos = 1 To Len(sogstreng) Select Case Mid(sogstreng, pos, 1) Case 0 To 9 strval = strval & Mid(sogstreng, pos, 1) Case Else molstreng = molstreng & Mid(sogstreng, pos, 1) End Select Next pos gang = 0 + Val(strval) If gang = 0 Then gang = 1 Select Case molstreng Case "H" Text1 = (Val(Text1) + (gang * mH)) DoEvents Case "S" Text1 = (Val(Text1) + (gang * mS)) DoEvents Case "O" Text1 = (Val(Text1) + (gang * mO)) DoEvents Case "He" Text1 = (Val(Text1) + (gang * mHe)) DoEvents Case Else End Select strval = "" molstreng = "" Next i End Sub
Private Sub Form_Load() txtsog = "" Text1 = "" Text1.Enabled = False txtsog.TabIndex = 0 Command1.TabIndex = 1 End Sub
Nå jeg må tilbage til min seng...
- Mikker
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.