發布時間:2024-01-22閱讀(18)
大家好,我是公眾號3分鐘學堂的郭立員~
前言
按理說這個問題很好解決,讀一行和刪一行都有對應的命令,讀一行用file.readline,刪一行用file.deleteline,那為啥還總有人問這個問題?
我覺得有這么幾種可能性:
一、剛剛接觸按鍵精靈的新手
對命令不熟,不知道用什么命令,這種情況我們不在這期文章的討論范圍。
二、系統兼容性問題
舉個例子,我用腳本往文本里面寫入4行內容,代碼如下:
Dim path="/sdcard/pictures/xx.txt"file.Write (path)Dim arr={1,2,3,4}file.WriteLines(path,arr)
在不同電腦系統上顯示的結果是不一樣的,在win10系統中文本是分行的,而在win7系統中,文本是只有1行。效果如圖所示:

造成這個原因是因為文本換行機制:
在win7系統中文本換行需要在文字行結尾處加上
在win10系統中文本換行只需要在文字行結尾處加上
回車符
換行符
我們用腳本寫入文本內容使用的是file.WriteLines 命令,打開file插件,看一下這個命令的源碼:
在源碼中可以看到把數組寫入命令,就是循環寫入每一行內容,并且在行結尾出加上 實現換行。
因為缺少 導致在win7系統中,看不到換行效果,但是僅僅是在文本中看不到換行效果,并不代表沒有。
當使用其他文本工具打開文本時,還是會看到換行效果的。
①用notepad打開
②用模擬器打開
那上面說的這個兼容性對我們“讀一行刪一行”的操作有什么影響呢?
假設你使用的是win7系統
你先有個xx.txt的文本,文本內容是
然后執行“讀一行刪一行”的操作
Dim txt=file.readline("/sdcard/pictures/xx.txt",1) TracePrint txtfile.DeleteLine "/sdcard/pictures/xx.txt", 1
執行完操作后,文本內容變成這樣了,看起來像一行,僅僅是看著像一行
這時有的人就懵逼了,我就刪除了第1行,為啥所有行都合并到一起了。
那問題出在哪?
出在file.deleteline命令,也就是刪除指定行的內容:
可能你會有個誤區,刪除文本行就是打開文本以后找到指定行,把整行內容刪掉,然后再去掉空行,整個刪除操作是在文本內進行的。
其實并不是,刪除操作是把所有內容先讀取出來,然后刪掉不要的內容,在寫回文本。
在這個過程中,有一個寫入文本的操作,也就是用到上面說的file.WriteLines 命令,所以就存在win7和win10兼容性的問題,導致看不到換行效果。
插件中file.deleteline命令的源碼中看到調用writelines函數

那怎么解決這個問題?
①不去管它,因為只有在win7文本有問題,在其他編輯器或者在win10上沒問題,也不影響腳本讀取。
②實在看著費勁,也可以改成
改一下file插件中的writelines命令
也是小改動,就是在 前面加上一個 ,保存一下插件就可以了。

注:插件位置在
至于你選擇哪個方法看自己喜好。
三、多模擬器讀取文本會出現讀不到的情況。
有時候讀一行刪一行的目的是為了多個模擬器不重復讀一行內容,但是這種方法是不行的,很容易出現同時讀到同一行內容,這時會導致讀不到內容
推薦方法是“排隊讀取”,具體方法看我另一篇文章教程。
【腳本講解】多開模擬器讀取同一文本不重復
=正文完=
歡迎分享轉載→http://www.avcorse.com/read-77289.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖