Waarde tussen tags selecteren in textbox

Status
Niet open voor verdere reacties.

rrara

Gebruiker
Lid geworden
22 jul 2009
Berichten
8
Beste forumleden,

Wie kan mij helpen met volgend probleem.

In een textbox lees ik een txt bestand in.
In de tekstbox staan er dan waarden tussen tags.

als voorbeeld:

[XML]<pfs:Assets decimals="INF" contextRef="PrecedingInstant" unitRef="EUR">477204.57</pfs:Assets>
<pfs:Equity decimals="INF" contextRef="CurrentInstant" unitRef="EUR">91632.81</pfs:Equity>
<pfs:Capital decimals="INF" contextRef="CurrentInstant" unitRef="EUR">63000</pfs:Capital>
<pfs:IssuedCapital decimals="INF" contextRef="CurrentInstant" unitRef="EUR">63000</pfs:IssuedCapital>
<pfs:Reserves decimals="INF" contextRef="CurrentInstant" unitRef="EUR">6300</pfs:Reserves>
<pfs:LegalReserve decimals="INF" contextRef="CurrentInstant" unitRef="EUR">6300</pfs:LegalReserve>
<pfs:AccumulatedProfitsLosses decimals="INF" contextRef="CurrentInstant" unitRef="EUR">22332.81</pfs:AccumulatedProfitsLosses>[/XML]

Nu is het de bedoeling om in deze textbox eerst een lijn te selecteren. vb "AccumulatedProfitsLosses" en daarna de waarde die tussen >< staat te selecteren. In dit geval 22332.81 zodat ik deze waarde kan bewaren in een andere textbox.

Ik weet dat dit moet mogelijk zijn met de "Instr" functie maar aangezien de waarde tussen >< geen vaste lengte heeft zit ik daar vast.

Wie kan mij helpen met de code of wie weet hiervan ergens een voorbeeld staan?

Alvast bedankt
 
lees de inhoud van het XML-bestand in in variabele c0

vervolgens
Code:
TextBox1.text=join(filter(split(join(filter(split(join(filter(split(c0,vbCrLf),"AccumulatedProfitsLosses"),""),">"),"/"),""),"<"),"/",false),"")
 
Laatst bewerkt:
Snb.

Bedankt voor de code.

Toch krijg ik een foutmelding op de 2de filter.
De foutmelding is: Onjuist aantal argumenten of ongeldige eigenschapstoewijzing.

ook het inladen van het xml bestand in een variabele doe ik misschien verkeerd.
Of kan het misschien liggen aan het feit dat ik dit in de VBA van ms Access gebruik?

Heeft u misschien de correcte code voor het inlezen van de xml?

Alvast bedankt voor de moeite.
 
Ik heb je tekst als xml.bestand opgeslagen.
Ik krijg het gewenste resultaat met
Verwijder zonodig de regel option Explicit.

Code:
Sub tst23()
  Open "E:\OF\__XML.XML" For Input As #1
  c0 = Input(LOF(1), #1)
  Close #1
    
  c1 = Join(Filter(Split(Join(Filter(Split(Join(Filter(Split(c0, vbCrLf), "AccumulatedProfitsLosses"), ""), ">"), "/"), ""), "<"), "/", False), "")
End Sub
of iets korter, zonder variabelen:

Code:
Sub tst23()
  Open "E:\OF\__XML.XML" For Input As #1
    Textbox1.Text = Join(Filter(Split(Join(Filter(Split(Join(Filter(Split(Input(LOF(1), #1), vbCrLf), "AccumulatedProfitsLosses"), ""), ">"), "/"), ""), "<"), "/", False), "")
  Close #1
End Sub
 
Laatst bewerkt:
Ik heb je tekst als xml.bestand opgeslagen.
Ik krijg het gewenste resultaat met
Verwijder zonodig de regel option Explicit.

Code:
Sub tst23()
  Open "E:\OF\__XML.XML" For Input As #1
  c0 = Input(LOF(1), #1)
  Close #1
    
  c1 = Join(Filter(Split(Join(Filter(Split(Join(Filter(Split(c0, vbCrLf), "AccumulatedProfitsLosses"), ""), ">"), "/"), ""), "<"), "/", False), "")
End Sub
of iets korter, zonder variabelen:

Code:
Sub tst23()
  Open "E:\OF\__XML.XML" For Input As #1
    Textbox1.Text = Join(Filter(Split(Join(Filter(Split(Join(Filter(Split(Input(LOF(1), #1), vbCrLf), "AccumulatedProfitsLosses"), ""), ">"), "/"), ""), "<"), "/", False), "")
  Close #1
End Sub

SNB,

Ik krijg nog steeds de foutmelding "Onjuist aantal argumenten of ongeldige eigenschapstoewijzing." op de Filter

En weet bij god niet waaraan het kan liggen.

Ik gebruik onderstaande code :

Code:
Private Sub Knop0_Click()
On Error GoTo Err_Knop0_Click

Dim oFSO As New FileSystemObject
Dim oFS
' Displays the Office File Open dialog to choose a file name
' for the current employee record.
Dim fileName As String
Dim result As Integer
Dim C0 As String

Tekst5 = ""
With Application.FileDialog(3) ' 3 is a constant: msoFileDialogFilePicker
.Title = "Select Employee Picture"
.Filters.Add "All Files", "*.*"
.Filters.Add "Xbrl", "*.xbrl"
.FilterIndex = 3
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path
result = .Show
If (result <> 0) Then 'result = 0 if nothing was selected
fileName = Trim(.SelectedItems.Item(1))

'filename contains the path you want.
End If
End With

  Open fileName For Input As #1
    Tekst8.Text = Join(Filter(Split(Join(Filter(Split(Join(Filter(Split(Input(LOF(1), #1), vbCrLf), "AccumulatedProfitsLosses"), ""), ">"), "/"), ""), "<"), "/", False), "")
  Close #1

Het eerste deel is om de file te selecteren en de 2de om dan de gegevens te laden.

Nu het Xml bestand is eigenlijk een xbrl maar qua structuur zijn die volgens mij wel hetzelfde. Het is tenslotte de waarden tussen >< die ik nodig heb.

Hopelijk weet u wl wat het probleem is.
 
Sla dat xbrl-bestand eerst eens op als Dostxt-bestand.
 
Sla dat xbrl-bestand eerst eens op als Dostxt-bestand.

Dat is niet het probleem.
De code stopt al tijdens het compilen nog voordat er iets geladen wordt.


Mijn VBA versie is Microsoft Visual Basic 6.3 v1040 in MS Access 2003.
 
Volg eerst eens een basiscursus VBA of lees een boek.
Zorg dat je weet waarmee je bezig bent met VBA-code.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan