xg911335 发表于 2010-8-19 16:50:43

获取input用FileWriteLine写入文本不对[已解决]

本帖最后由 xg911335 于 2010-8-29 23:43 编辑

$Form1 = GUICreate("Form1", 362, 93, 192, 114)
$Input1 = GUICtrlCreateInput("""&$a&""-""&$b&""-""&$c&""-""&$d&""", 32, 24, 297, 21)
$Button1 = GUICtrlCreateButton("写入文本", 208, 64, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        dim $a,$b,$c,$d
                                $a=1
                                $b=2
                                $c=3
                                $d=4
                        FileWriteLine ("test.txt", GUICtrlRead($Input1))
        EndSwitch
WEnd
为什么写入的是"&$a&"-"&$b&"-"&$c&"-"&$d&"而不是1-2-3-4呢?如何实现这样的功能?

weiyun 发表于 2010-8-19 19:06:45

dim $a,$b,$c,$d
                              $a=1
                              $b=2
                              $c=3
                              $d=4
这几句应放在$Input1 = GUICtrlCreateInput("""&$a&""-""&$b&""-""&$c&""-""&$d&""", 32, 24, 297, 21)
前面

水木子 发表于 2010-8-19 19:10:01

楼主逻辑不清楚吧!就你的代码来看
"&$a&"-"&$b&"-"&$c&"-"&$d&" 和 1-2-3-4 并没有直接关系啊!

xg911335 发表于 2010-8-20 13:01:53

那如何实现这样的功能呢,给个思路或者代码之类的。谢谢

afan 发表于 2010-8-20 14:45:57

要么做成4个输入框让用户自行分别输入,要么让用户自行使用分隔符

netegg 发表于 2010-8-20 16:00:18

什么时候创建控件的时候默认值可以用未定义值的变量了

xg911335 发表于 2010-8-20 16:52:26

研究了半天还是不行。有没有代码给段,我看看。。另外"&$a&"-"&$b&"-"&$c&"-"&$d&"这段我是想可以自定义排列方式。并不一定就是我所固定的方式。也有可能是"&$b&"=-="&$c&"-=="&$a&"==-"&$d&"这样的。

Ziya 发表于 2010-8-20 17:02:07

目前为止貌似还没人弄明白你到底想表达什么

netegg 发表于 2010-8-20 17:04:12

本帖最后由 netegg 于 2010-8-20 17:05 编辑

楼主自己慢慢研究吧,语文一直就是弱项,帮不上忙了

xg911335 发表于 2010-8-21 15:29:47

我是想让用户通过改变GUICtrlCreateInput("""&$a&""-""&$b&""-""&$c&""-""&$d&""")的内容来排序导出。可以修改ABCD的位置和"-"符号来导出自己想要的格式。如:("""&$c&""=""&$d&""=""&$a&""=""&$b&""")格式,导出是3=4=1=2排序。不知道这次表达好了没。呵呵

Ziya 发表于 2010-8-21 15:50:03

$Form1 = GUICreate("Form1", 362, 93, 192, 114)
$Input1 = GUICtrlCreateInput("请输入adcd的格式", 32, 24, 297, 21)
$Button1 = GUICtrlCreateButton("写入文本", 208, 64, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
dim $a,$b,$c,$d
                $a=1
                $b=2
                $c=3
                $d=4                                       
                                                               
While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case -3
                        Exit
                Case $Button1
                                                $sr = GUICtrlRead($Input1)
                        $sr = StringReplace($sr,"a",$a)
                                                $sr = StringReplace($sr,"b",$b)
                                                $sr = StringReplace($sr,"c",$c)
                                                $sr = StringReplace($sr,"d",$d)
                                                FileWriteLine (@DesktopDir&"\test.txt",$sr)
      EndSwitch
WEnd将用户输入的abcd依次替换为变量$a,$b,$c,$d

xyold1 发表于 2010-8-22 00:01:23

LZ肯定是C语言转过来,建议多看看帮助

minterz 发表于 2010-8-22 00:04:43

直接filewrite也可以的啊
后加上换行符

xyold1 发表于 2010-8-22 00:14:17

LZ用AU3的时间也不短了,怎么连AU3的语法都写错呢,真不懂

$Input1 = GUICtrlCreateInput("""&$a&""-""&$b&""-""&$c&""-""&$d&""", 32, 24, 297, 21)

这句根本不通啊
{:face (131):}

xg911335 发表于 2010-8-26 19:41:28

前两天太忙了,搞得今天才来回帖。我用11楼的方法修改了一下。可以了。不会只能读取数据库里面的第一条数据。
…………………………
$Form1_1 = GUICreate("Form1", 475, 668, 408, 139)
$Input1 = GUICtrlCreateInput("user===pass===ipadd", 56, 560, 398, 21)
…………………………
Func daochu()
        Dim $name,$ip,$mac,$sr,$a=0
        $sr = GUICtrlRead($Input1)
        $file = FileOpen("list.txt", 10)
        If $file = -1 Then
                MsgBox(0, "错误", "不能打开文件.")
                Exit
        EndIf
                If FileExists($mdb_data_path) Then
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path&";Jet Oledb:Database Password="&$mdb_data_pwd)
                $RS =ObjCreate("ADODB.Recordset")
                $RS.ActiveConnection = $addfld
                $RS.cursorlocation = 3
                $RS.Open ("Select "&$T & " From " & $tblname )
                $n1 = $RS.RecordCount
                        If $RS.bof and $RS.eof then
                                MsgBox(0,"错误","没有数据集")
                        Else
                                while Not $RS.eof And Not $RS.bof
                                        if @error =1 Then ExitLoop
                                                $user = $RS.Fields (0).value
                                                $pass = $RS.Fields (1).value
                                                $ipadd = $RS.Fields (3).value
                                                $sr = StringReplace($sr,"user",$user)
                                                $sr = StringReplace($sr,"pass",$pass)
                                                $sr = StringReplace($sr,"ipadd",$ipadd)       
                                                MsgBox(0,"1",$sr&$name)
;~                                                 FileWriteLine ($file, $sr)
                                        $rs.movenext
                                WEnd
                                MsgBox(0,"提示","导出成功")
                        EndIf
                $rs.close
                $addfld.Close
                FileClose($file)
        Else
                MsgBox(0,"错误","被打开的文件不存在")
        EndIf
EndFunc
循环里的msgbox一直显示数据库的第一条。。是怎么会事啊?数据库里有几百条记录。第一条是zxc,123456,192.168.0.1循环几百次都是显示这条记录.
页: [1]
查看完整版本: 获取input用FileWriteLine写入文本不对[已解决]