bdancerlc 发表于 2011-12-18 21:54:03

为什么我读不到@GUI_DragFile返回的路径的文件内容?[已解决]

本帖最后由 bdancerlc 于 2011-12-18 23:26 编辑

我想实现的功能是拖拽的文件内容赋值到edit里面,可是通过@GUI_DragFile总是读不到文件内容:
先上代码
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("测试事件模式", 468, 136, 192, 124, $GUI_DROPACCEPTED, $WS_EX_ACCEPTFILES)

$edit = GUICtrlCreateEdit("",0,0,468,136)
GUICtrlSetState($edit,$GUI_DROPACCEPTED)
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
GUISetOnEvent($GUI_EVENT_DROPPED, "gui")

Opt("GUIOnEventMode", 1)
GUISetState(@SW_SHOW)
Global $start = 0,$i

While 1
        Sleep(100)
WEnd

Func gui()
    Switch @GUI_CtrlId
      Case $GUI_EVENT_CLOSE
            Exit
                Case $GUI_EVENT_DROPPED
                        $file=FileRead (@GUI_DragFile)
                        MsgBox(0,'',$file)
    EndSwitch
EndFunc   ;==>gui
求解,不知道是哪里有问题...

afan 发表于 2011-12-18 22:53:16

25行改为$file = FileRead(StringTrimRight(@GUI_DragFile, 2))

bdancerlc 发表于 2011-12-18 23:22:27

回复 2# afan


    谢谢老大,嘿嘿,...
    通过你的提示,我想了一下,大胆猜测了一下原因!
    你这句,删除右边的2个字符,是不是因为:
    @GUI_DragFile 返回的字符串中带有换行符: \r或者是\n?
    而fileread()命令中不能过滤掉这个换行符所造成的?

afan 发表于 2011-12-18 23:23:04

回复 3# bdancerlc


    是的

bdancerlc 发表于 2011-12-18 23:26:31

回复 4# afan


    谢谢,谢谢,这个问题我测试了昨天一晚上,找遍了论坛相关拖拽的例子,
    都只有返回路径,没有读取文件内容的!
   
    我的确注意到了有换行,但是没有去过多的考虑这层原因,...
    {:face (468):}

komaau3 发表于 2011-12-19 00:46:02

坑爹啊!!!!!!!! 幸好以前没这么用过。 楼主问的好!A版答的好!学习了 哈哈

兔子先生 发表于 2011-12-19 07:32:19

一般读不出来我每次都用msgbox输出一下,能输出就证明是哪里多了或者少了东西。。。

bdancerlc 发表于 2011-12-19 12:40:00

回复 7# 兔子先生


    谢谢,我在A版的提示下,也用msgbox输出,后面还加了几个字符,
    发现有换行,不过没想到,通过路径读数据,不能过滤掉..
页: [1]
查看完整版本: 为什么我读不到@GUI_DragFile返回的路径的文件内容?[已解决]