Jump to content

How to find a word in a string


Recommended Posts

<?xml version="1.0" encoding="UTF-8" ?>
<user>
<login>
  <name></name>
  <autologin>0</autologin>
  <pwd>0</pwd>
  <language>en</language>
  <skin>SkinBlack</skin>
</login>
<network tcp="0" udp="1513" used="1">
  <upnp>1</upnp>
</network>
</user>

It's my string, i want to read what is between <skin> and </skin>. in this string i should read "SkinBlack".

It's my code so far, i can find where is it but i cant read it.

$String = FileReadLine(FileOpen("user.xml"),8)
$First = StringInstr($String,"<skin>")
$Last = StringInstr($String,"</skin>")
MsgBox(0,"", "I should read from " & $First + 6 & " to " & $Last & " in line 8.")

Best Regards.

Link to comment
Share on other sites

Try using:

StringReplace($string, "<skin>", "")
StringReplace($string, "</skin>", "")

My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.

My Projects

WhyNotWin11
Cisco FinesseGithubIRC UDFWindowEx UDF

 

Link to comment
Share on other sites

  • Moderators

D4RKON3,

Try this: :graduated:

$sText = '<?xml version="1.0" encoding="UTF-8" ?>' & @CRLF & _
         '<user>'                                  & @CRLF & _
         '<login>'                                 & @CRLF & _
         '  <name></name>'                         & @CRLF & _
         '  <autologin>0</autologin>'              & @CRLF & _
         '  <pwd>0</pwd>'                          & @CRLF & _
         '  <language>en</language>'               & @CRLF & _
         '  <skin>SkinBlack</skin>'                & @CRLF & _
         '</login>'                                & @CRLF & _
         '<network tcp="0" udp="1513" used="1">'   & @CRLF & _
         '  <upnp>1</upnp>'                        & @CRLF & _
         '</network>'                              & @CRLF & _
         '</user>'

$sSkin = StringRegExpReplace($sText, "(.*\v)*(\s)*<skin>(.*)<\/skin>(\v.*)*", "$3")

MsgBox(0, "Skin", $sSkin)

Clever things SREs! ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

$sText = '<?xml version="1.0" encoding="UTF-8" ?>' & @CRLF & _
  '<user>' & @CRLF & _
  '<login>' & @CRLF & _
  '  <name>My name</name>' & @CRLF & _
  '  <autologin>Yes</autologin>' & @CRLF & _
  '  <pwd>No</pwd>' & @CRLF & _
  '  <language>en</language>' & @CRLF & _
  '  <skin>SkinBlack</skin>' & @CRLF & _
  '</login>' & @CRLF & _
  '<network tcp="0" udp="1513" used="1">' & @CRLF & _
  '  <upnp>33</upnp>' & @CRLF & _
  '</network>' & @CRLF & _
  '</user>'
Dim $aTags[7] = [6, 'name', 'autologin', 'pwd', 'language', 'skin', 'upnp']
For $i = 1 To $aTags[0]
$sSearch = StringRegExpReplace($sText, '(?s).*?<' & $aTags[$i] & '>(.*?)</' & $aTags[$i] & '>?.*', '$1')
If @extended = 1 Then
  MsgBox(0, $aTags[$i], $sSearch)
Else
  MsgBox(16, 'Error', 'StringRegExpReplace')
EndIf
Next

Edited by madmasles
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...