tft每日頭條

 > 知識

 > 按鍵精靈循環輸入文本裡面的内容

按鍵精靈循環輸入文本裡面的内容

知識 更新时间:2025-01-10 13:53:35

大家好,我是公衆号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行。效果如圖所示:

按鍵精靈循環輸入文本裡面的内容(按鍵精靈為啥還有人問)1

造成這個原因是因為文本換行機制:

在win7系統中文本換行需要在文字行結尾處加上 \r\n

在win10系統中文本換行隻需要在文字行結尾處加上 \n

\r 回車符

\n 換行符

我們用腳本寫入文本内容使用的是file.WriteLines 命令,打開file插件,看一下這個命令的源碼:

在源碼中可以看到把數組寫入命令,就是循環寫入每一行内容,并且在行結尾出加上\n實現換行。

因為缺少\r導緻在win7系統中,看不到換行效果,但是僅僅是在文本中看不到換行效果,并不代表沒有。

當使用其他文本工具打開文本時,還是會看到換行效果的。

①用notepad打開

②用模拟器打開

那上面說的這個兼容性對我們“讀一行删一行”的操作有什麼影響呢?

假設你使用的是win7系統

你先有個xx.txt的文本,文本内容是

然後執行“讀一行删一行”的操作

Dim txt=file.readline("/sdcard/pictures/xx.txt",1) TracePrint txt file.DeleteLine "/sdcard/pictures/xx.txt", 1

執行完操作後,文本内容變成這樣了,看起來像一行,僅僅是看着像一行

這時有的人就懵逼了,我就删除了第1行,為啥所有行都合并到一起了。

那問題出在哪?

出在file.deleteline命令,也就是删除指定行的内容:

可能你會有個誤區,删除文本行就是打開文本以後找到指定行,把整行内容删掉,然後再去掉空行,整個删除操作是在文本内進行的。

其實并不是,删除操作是把所有内容先讀取出來,然後删掉不要的内容,在寫回文本。

在這個過程中,有一個寫入文本的操作,也就是用到上面說的file.WriteLines 命令,所以就存在win7和win10兼容性的問題,導緻看不到換行效果。

插件中file.deleteline命令的源碼中看到調用writelines函數

按鍵精靈循環輸入文本裡面的内容(按鍵精靈為啥還有人問)2

那怎麼解決這個問題?

①不去管它,因為隻有在win7文本有問題,在其他編輯器或者在win10上沒問題,也不影響腳本讀取。

②實在看着費勁,也可以改成

改一下file插件中的writelines命令

也是小改動,就是在\n前面加上一個\r,保存一下插件就可以了。

按鍵精靈循環輸入文本裡面的内容(按鍵精靈為啥還有人問)3

注:插件位置在

至于你選擇哪個方法看自己喜好。

三、多模拟器讀取文本會出現讀不到的情況。

有時候讀一行删一行的目的是為了多個模拟器不重複讀一行内容,但是這種方法是不行的,很容易出現同時讀到同一行内容,這時會導緻讀不到内容

推薦方法是“排隊讀取”,具體方法看我另一篇文章教程。

【腳本講解】多開模拟器讀取同一文本不重複

=正文完=

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关知識资讯推荐

热门知識资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved