vb中如何讀取textbox中某一行內容

2022-03-19 14:37:27 字數 5482 閱讀 1414

1樓:匿名使用者

最好是放在listbox中,方便,如果你非要用textbox,你可以嘗試下面的**,文字最後不能有空行,否則會有空白:

參考private sub command1_click()dim a

dim i as integer

a = split(trim(text1.text), vbcrlf)

randomize

i = int(rnd * (ubound(a) - lbound(a)) + 1) + lbound(a)

print a(i)

end sub

2樓:匿名使用者

'讀取指定行的函式,用法 【?】=getline(【源資料】,【行號(可以多選)】)

function getline(byval s as string, paramarray a())

dim i as integer, st(1 to 1000) as string, s1 as string, s2 as string, rnum as integer, v

s1 = ""

rnum = 0

for i = 1 to len(s)

if mid(s, i, 1) <> chr(13) thens1 = s1 + mid(s, i, 1)else

rnum = rnum + 1

st(rnum) = s1

s1 = ""

end if

next i

rnum = rnum + 1

st(rnum) = s1

s1 = ""

for each v in a

s1 = s1 + st(v)

next v

getline = s1

end function

3樓:匿名使用者

分二步:

一、建立一個模組,複製下面**:

option explicit

const em_getline = &hc4

const em_linelength = &hc1

const em_lineindex = &hbb

private declare function sendmessage lib "user32" alias "sendmessagea" (byval hwnd as long, byval wmsg as long, byval wparam as long, lparam as any) as long

private declare sub rtlmovememory lib "kernel32" (lpvdest as any, lpvsource as any, byval cbcopy as long)

sub tb_getline(byval hwnd as long, byval whichline as long, line as string)

dim length as long, barr() as byte, barr2() as byte, lc as long

lc = sendmessage(hwnd, em_lineindex, whichline, byval 0&)

length = sendmessage(hwnd, em_linelength, lc, byval 0&)

if length > 0 then

redim barr(length + 1) as byte, barr2(length - 1) as byte

call rtlmovememory(barr(0), length, 2)

call sendmessage(hwnd, em_getline, whichline, barr(0))

call rtlmovememory(barr2(0), barr(0), length)

line = strconv(barr2, vbunicode)

else

line = ""

end if

end sub

二、呼叫舉例:

dim s as string

call tb_getline( text1.hwnd, 5, s )

' 傳回值 s 即等於到 5 行的資料

注:textbox 的行次是從 0 起算。

4樓:匿名使用者

兄弟,你把這些資料放到listbox中不是就沒有這些問題了嗎?一切都變得很容易了。

vb如何獲取 textbox中部分內容

5樓:然後去遠足

擷取關鍵字就可以了,如:

dim s as string

s = text1.text

msgbox split(split(s, "")(1), "")(0)

vb中如何讀取textbox中指定的一行

6樓:秋色烽火

textbox 是以 vbcr+vblf 為分行符號, 如果我們要逐一讀取 textbox 每一行, 無非是尋找 vbcr+vblf 的所在位置, 然後取出每一行的字串, 不過這個方法不快,而且如果我們要讀取第 n 行資料,還是要從第 1、2、…n-1 行逐一讀起,實在麻煩。 還好 windows api 提供有讀取 textbox 第 n 行的功能, 細節如下:

1、api 的宣告:

private declare function sendmessage lib "user32" alias "sendmessagea" (byval hwnd as long, byval wmsg as long, byval wparam as long, lparam as any) as long

private declare sub rtlmovememory lib "kernel32" (lpvdest as any, lpvsource as any, byval cbcopy as long)

2. 程式範例:

sub tb_getline(byval hwnd as long, byval whichline as long, line as string)

dim length as long, barr() as byte, barr2() as byte, lc as long

lc = sendmessage(hwnd, em_lineindex, whichline, byval 0&)

length = sendmessage(hwnd, em_linelength, lc, byval 0&)

if length > 0 then

redim barr(length + 1) as byte,barr2(length - 1) as byte

call rtlmovememory(barr(0), length, 2) '準備一個儲存器,傳遞訊息之前先在儲存器的前兩個位元組填入儲存器的長度。

call sendmessage(hwnd, em_getline,whichline, barr(0))

call rtlmovememory(barr2(0), barr(0), length)

line = strconv(barr2, vbunicode)

else

line = ""

end if

end sub

' 假設要讀取 text1 第 5 行的資料

dim s as string

call tb_getline( text1.hwnd, 5, s )

' 傳回值 s 即等於第 5 行的資料

( 注:textbox 的行次是從 0 起算。)

站長在去掉有關barr2的定義後,並將line=strconv(barr2,vbunicode)改為line=strconv(barr,vbunicode)發現程式照常執行,似乎barr2在本程式中是多餘的。不知哪位大蝦能告知本人barr2在這裡的作用。

7樓:

以下在form需一個textbox,並設定multiline = true, 一個command button

private sub command1_click()

dim str5 as string

str5 = getaline(text1, 1) '取得第二行的字串,以0為基底

end sub

'以下在.bas

option explicit

const em_getline = &hc4

declare function sendmessage lib "user32" alias "sendmessagea" _

(byval hwnd as long, byval wmsg as long, byval wparam as long, _

lparam as any) as long

public function getaline(text1 as textbox, byval ntx as long) as string

dim str5(255) as byte '如果您的字串 > 255 byte請自行增加該byte array

dim str6 as string, i as long

str5(0) = 255 '字串的前兩個byte存該字串的最大長度

str5(0) = 255

i = sendmessage(text1.hwnd, em_getline, ntx, str5(0))

if i = 0 then

getaline = ""

else

str6 = strconv(str5, vbunicode)

getaline = left(str6, instr(1, str6, chr(0)) - 1)

end if

end function

vb如何讀取textbox裡的數字中的一個

8樓:匿名使用者

只是數字嗎?那可以模仿取數位。個位=val(left(cstr(val(right(cstr(text1.

text), 1))), 1)) 十位=val(left(cstr(val(right(cstr(text1.text), 2))), 1)) ......自右往左第e位=val(left(cstr(val(right(cstr(text1.

text), e))), 1)) 如果,text1.text=123445679天氣不錯805print val(left(cstr(val(right(cstr(text1.text), 15))), 1)) 輸出的將是2print val(left(cstr(val(right(cstr(text1.

text), 1))), 1)) 輸出的將是5

vb如何讀取中內容,vb如何讀取txt中內容

用api函式獲得使用者資料夾,這個我不曉得,我只會用獲取的使用者名稱來做.下面的 我並沒有限制使用者桌面上的txt檔案必須為 新建 文字文件.txt 也就是滿足檔案裡有字串 1234 的txt檔案,就刪除。你可以自己調整一下,這樣就不需要filelistbox控制元件了,如果只是針對你自己的電腦,這...

C 中如何讀取中的座標資料,C 中如何讀取txt文件中的座標資料?

include include inline bool check double const x int main int const arc,char const arg std ifstream file arg 1 if file int num double x,y,z int cnt 0 ...

VB從檔案中讀取了定長字串,如何去掉後面的空格

定長字串你沒有理解。一個定長字串,比如dim str as string 256,這個str變數裡面就包含了256個空字元,而不是空格。首先你要理解字元和字串的區別,字元是一個一個的,字串是一組字元組成的。其次,空字元的ascii碼是0,而空格是32,在vb裡表示為 chr 0 和 chr 32 在...