Sign in to follow this  
Followers 0
golfinhu

StringSplit() Problem

4 posts in this topic

#1 ·  Posted (edited)

hi ppl!

i'm here again >.<"

i'm getting problem with my stringsplit() function

look the example code:

GUICreate("Gui Test", 300, 300, -1, -1)
Local $listview = GUICtrlCreateListView("Teste", 0, 0, 300, 300)
Local $string = "string1|string2|string3|string4" & @CRLF & _
    "string5|string6|string7|string8"
Local $splited = StringSplit($string, @CRLF, 1)
For $i = 1 To $splited[0]
GUICtrlCreateListViewItem($splited[$i], $listview)
Next
GUISetState()
Sleep(5000)
Exit

in the listview only enters a "String1" and "String 5"

not a "string1|string2|string3|string4" and "string5|string6|string7|string8"

what would be correct!

anyone can look this for me?

thanks a lot!

Edited by golfinhu

Share this post


Link to post
Share on other sites



i was found the problem!

It's because the autoit is trying to put it on anothers cols, because it's the autoit separator!

i'm sorry for the post!

Share this post


Link to post
Share on other sites

It's not your string split, it's the way you created your listview. You only gave it one named column, so it will only display one column because of that. Try the change below for the Listview

Local $listview = GUICtrlCreateListView("Teste|2|3|4", 0, 0, 300, 300) ; you need to give names to the columns or only one will be created.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

yeah, you're right

thanks a lot!

Share this post


Link to post
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
Sign in to follow this  
Followers 0

  • Similar Content

    • kneze
      By kneze
      Hi
      i try to read Wlan Profiles from local Computer. First Step Command Prompt: netsh wlan show profiles >> C:\temp\test\wlan.txt.
      Second Step (here's a sample script to find a solution for my problem. Script read each line of wlan.txt and Display Name of Wireless Connection which i have set up in the past.  If i edit wlan.txt to wlan - sample.txt script works. wlan.txt containsline without : so i get error message. How can i read only lines beginning with All User Profile so i can use original file wlan.txt which i crate in the command prompt with: netsh wlan show profiles >> C:\temp\test\wlan.txt ?
      Thanks for any suggestions.
      Kneze
      $Form1 = GUICreate("Form1", 374, 268, 892, 512) $Button1 = GUICtrlCreateButton("button", 145, 35, 75, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $file = "C:\temp\test\wlan.txt" FileOpen($file, 0) For $i = 1 to _FileCountLines($file) $line = FileReadLine($file, $i) $after = StringSplit($line, ":")[2] MsgBox(262144, "Result", $after, 0) Next FileClose($file) EndSwitch WEnd  
       
      wlan - sample.txt
      wlan.txt
    • blemas
      By blemas
      The McAfee return for AV defs per "C:\Progra~1\Common~1\McAfee\SystemCore\csscan.exe -Versions" is ...
      CommonShell Command Line Scanner Lite (VSCORE.15.5.0.3960)
          Engine version: 5800.7501
          DAT version:    8450.0
          Time required:  15 milliseconds
      I want to isolate the actual DAT version as "8450.0".  There may be an easier way to get the DAT Version via other McAfee or registry methods but essentially I just want to know how to parse a string at a character or @CRLF into two separate strings for further parsing. Example:
      $string = "Name=Microsoft Windows 10 Professional |C:\windows|\Device\Harddisk0\Partition2"
      Parse into $var1 = "Name" & $var2 = "Microsoft Windows 10 Professional |C:\windows|\Device\Harddisk0\Partition2"
      From there I'd like to parse $var2 at "|" into  $var3 = "Microsoft Windows 10 Professional" and $var4 "C:\windows|\Device\Harddisk0\Partition2"
       
       
       
       
       
    • crushyna
      By crushyna
      Hello everyone!

      I've encountered a strange problem while adding files (or rather file names) to a ListView.
      Mechanics are simple:
      1. Select files to add (FileOpenDialog + Multiselect)
      2. Split selected string (filepath) into array (StringSplit)
      3. File names appear on ListView (GUICtrlCreateListViewItem)

      Writing starts from second array (since 0 is array size, and 1 is filepath).
      Problem occurs when I try to add one file. Then, no filenames are added.
      As far as I know, selecting one file generates only 2 strings (0 and 1) to split, therefore no string is written into ListView.
       
      Is there any way / workaround to make this thing work properly?

      Some code here:
      While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $idAddTest $sMessage = "Select test cases to load:" $sFileOpenDialog = FileOpenDialog($sMessage, @WorkingDir & "\data\tests\", "All (*.*)", $FD_FILEMUSTEXIST & $FD_MULTISELECT) If @error Then MsgBox($MB_SYSTEMMODAL, "", "No test(s) were selected.") FileChangeDir(@ScriptDir) Else FileChangeDir(@ScriptDir) $aFileList = StringSplit($sFileOpenDialog, "|", @CRLF) For $i = 2 to $aFileList[0] MsgBox( 0, "test", $aFileList[$i]) ;just for testing purposes GUICtrlCreateListViewItem($aFileList[$i], $idTestCaseList) Next EndIf EndSwitch WEnd  
      And nothing more spectacular from ListView side:
      Global $idTestCaseList = GUICtrlCreateListView("List of Tests ", 24, 24, 225, 502, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT)) GUICtrlSetTip(-1, "List of test cases."& @CRLF &"Hold CTRL to select multiple lines.")  
      Any help appreciated!
    • ur
      By ur
      How to use regular expressions in StringSplit and StringInStr
    • meows
      By meows
      12 where is a simple StringSplit at delimeter example please?
      Copy to clipboard #include <MsgBoxConstants.au3> Example() Func Example() Local $aDays = StringSplit("Mon,Tues,Wed,Thur,Fri,Sat,Sun", ",") ; Split the string of days using the delimeter "," and the default flag value. #cs The array returned will contain the following values: $aDays[1] = "Mon" $aDays[2] = "Tues" $aDays[3] = "Wed" ... $aDays[7] = "Sun" #ce For $i = 1 To $aDays[0] ; Loop through the array returned by StringSplit to display the individual values. MsgBox($MB_SYSTEMMODAL, "", "$aDays[" & $i & "] - " & $aDays[$i]) Next EndFunc ;==>Example I went through Datatypes  Operators Conditional Obj Statements I had high hopes for Obj statements but it was a waste so I went to Google, Yahoo, Yandex, Sohu, and Baidu.
      All I learned is that Baidu has more mobile customers than the US has people!
      I need to separate this string at each to enter into a database
      BabyMAKERrootCIMV2:Win32_Service.Name="Apache2.4"BabyMAKERrootCIMV2:Win32_Service.Name="Apache2.4"BabyMAKERrootCIMV2:Win32_Service.Name="AppIDSvc"BabyMAKERrootCIMV2:Win32_Service.Name="AppIDSvc"BabyMAKERrootCIMV2:Win32_Service.Name="AppIDSvc"BabyMAKERrootCIMV2:Win32_Service.Name="Appinfo"BabyMAKERrootCIMV2:Win32_Service.Name="Appinfo"BabyMAKERrootCIMV2:Win32_Service.Name="asComSvc"

       
      ALL three examples are ARRAYS....  If I wanted a tree I go to the beach and catch a fish and plant it
      deep with lots of tree food. Then water it daily waiting for the day the fish turns into a tree.
      Is it a joke? I did a search array in the help(Help control 6.1) file for array and got NO RESULTS.
      I tried the trim examples and they worked great but I have no way of knowing how long each string will be at the delimeter
      so where is a simple StringSplit at delimeter example please? I know I had to miss it.