国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一些字符串操作的問題和回答

2019-11-18 17:51:11
字體:
來源:轉載
供稿:網友
提問:
假設我從Excel表格中復制了一些數據到剪貼板中,比如是這樣一些信息:
Allen12
Anderson13
Douglas12
Ohio49

我怎樣才能把這些名字和數字讀進一個數組或者一個Grid框中呢?用Clipboard.GetText(vbCFText)只能一下子讀入所有數據,而我希望一個一個地讀。

回答:
新建一個項目,在窗體上放兩個label和一個command。以下是代碼:
    DimvText(7)AsString
    Dimc

    Forc=0To7
      vText(c)=GetPartofString(Clipboard.GetText,c 1)
    Nextc

    'showresult
    Forc=0To7
      MsgBoxvText(c)
    Nextc

EndSub

PrivateFunctionGetPartofString(source$,part)AsString
  Dimp,c,tmp$

  tmp$=source$
  c=0
  Do
    p=InStr(tmp,Chr(32))
    Ifp<>0Then
      GetPartofString=Left(tmp,p-1)
      c=c 1
      tmp=Right(tmp,Len(tmp)-p)
    EndIf
  LoopWhilec<>part

EndFunction
--1-------------------------------------------------------------

提問:
我如何才能數出一個字符串中的字母數?舉例來說:我想在用戶按下OK時計算在Text1.Text中的字母數。

回答:
使用LEN(Text1.text)命令如何?你就可以得到長度……包括空格和其它非字母的字符。所以如果你希望去掉它們的話,必須要一個小函數來檢查Text1.Text中的字符是否為真正的字母:

PublicFunctionCountCharacters(source$)AsInteger
  Dimcounter,t
  ConstCharacters$="abcdefghijklmnopqrstuvwxyz"

  Fort=1ToLen(source$)
    IfInStr(Characters,LCase$(Mid$(source$,t,1)))<>0Then
      counter=counter 1
    EndIf
  Nextt
  CountCharacters=counter
EndFunction

使用時就象這樣:
vString$="Testing....aboutwhat?"
MsgBoxCountCharacters(vString$)

--2-------------------------------------------------------------

提問:
有沒有人知道怎樣來做這樣一個特殊的循環?我需要把一個字符串,比如“Heyhowareyou”,中的每個字母放到不同的變量中。例如對上面這句話,H放在A1中,e放在A2中,以此類推。謝謝你的幫助。

回答:
DimvChar()asString

SubPlaceInArray(source$)

Dimp

Forp=1ToLen(source$)
RedimPreservevChar(p)
vChar(p)=Mid$(source$,p,1)
Nextp
EndSub
在數組vChar的每一項中就分別是給出字符串的所有字母。

--3-------------------------------------------------------------

提問:
你怎樣把一個文本文件中的單詞一個一個讀入字符串變量中?文件中每個單詞都被空格分隔。

回答:
Dimv
Words()asString

SubSplitStringintoWords(bron$)
Dimc,p,t,vCheck
DimTempBron$,tmp$

'把一行輸入分成單詞
  t=0
  TempBron$=bron$
  Forc=1ToLen(bron$)
    p=InStr(TempBron$,Chr(32))
    Ifp<>0Then
    ReDimPreservevWords(t)
      tmp=Left$(TempBron$,p-1)
      vWords(t)=StripString(tmp)
      TempBron$=Right$(TempBron$,Len(TempBron$)-p)
      t=t 1
      c=c p
    EndIf
  Nextc
  ReDimPreservevWords(t)
  vWords(t)=StripString(TempBron)

EndSub

首先你必須先讀入一行文本,然后使用以上這個過程。在數組vWords中就是文本文件中的所有單詞。如果你在讀文件方面也需要幫助,告訴我。
--4-------------------------------------------------------------

提問:
我需要替換窗體上所有文本框中的某一個單詞,應該怎么做?先說聲謝謝了。

回答:
試試這個……

'在新窗體上放一個command和三個textbox,然后加入以下代碼
'按F5運行,注意先把Command的caption改成"&Replacesomebodywithme"

PrivateSubCommand1_Click()
  ConstvString$="testingforsomebodyonthenet"
  SelectCaseCommand1.Caption
  Case"&Replacetextinalltextboxes"
    Text1.Text=vString
    Text2.Text=vString
    Text3.Text=vString
    Command1.Caption="&Replacesomebodywithme"
  Case"&Replacesomebodywithme"
    CallChangeText
    Command1.Caption="&Replacetextinalltextboxes"
  EndSelect

EndSub

FunctionsReplace(SearchLineAsString,SearchForAsString,ReplaceWithAsString)
  DimvSearchLineAsString,foundAsInteger

  found=InStr(SearchLine,SearchFor):vSearchLine=SearchLine
  Iffound<>0Then
    vSearchLine=""
    Iffound>1ThenvSearchLine=Left(SearchLine,found-1)
    vSearchLine=vSearchLine ReplaceWith
    Iffound Len(SearchFor)-1<Len(SearchLine)Then_
      vSearchLine=vSearchLine Right$(SearchLine,_
  Len(SearchLine)-found-Len(SearchFor) 1)
  EndIf
  sReplace=vSearchLine

EndFunction

PrivateSubChangeText()
  DimControl

  ForEachControlInForm1.Controls
    IfTypeOfControlIsTextBoxThen
      Control.Text=sReplace(Control.Text,"somebody","me")
    EndIf
  NextControl

EndSub
--5-------------------------------------------------------------

提問:
現在我有一個文本框來輸入字符串。另外有60個文本框的控件數組,它們包含了我的一個字典。我設法檢查字符串中的每一個單詞,看它是否符合控件數組中的也就是字典中的單詞。我在檢驗前不得不把標點全部去掉。如果整個句子都拼寫對了,我發出一個消息,如果拼錯了,發出另一個消息。
感謝所有對此提出的任何建議和想法。

回答:
假定你有一個文本框來輸入單詞,然后你對照一個數組來檢查它們……你可以使用以下代碼作為你的起點……但是請考慮把你的字典轉換成一個數據庫,因為當它成為一個真正的字典時,數據庫工作起來快得多。

'onthegeneralsection
DimvWords()
DimMax
DimvCheckWord()

PrivateForm1_Load()
  Text1.SetFocus
  Text1.Text="livinginamericabutnotreally"
  Max=10

  'makearray
  'youcanuseanasciifiletogetthewords
  RedimvCheckWord(Max)
  vCheckWord(0)="walther"
  vCheckWord(1)="musch"
  vCheckWord(2)="america"
  vCheckWord(3)="tilburg"
  vCheckWord(4)="hallo"
  vCheckWord(5)="testen"
  vCheckWord(6)="testing"
  vCheckWord(7)="really"
  vCheckWord(8)="visual"
  vCheckWord(9)="basic"

EndSub

SubSplitStringintoWords(bron$)
Dimc,p,t,vCheck
DimTempBron$,tmp$
DimvOkeAsBoolean

'splittingtheinputintowords
  t=0
  TempBron$=bron$
  Forc=1ToLen(bron$)
    p=InStr(TempBron$,Chr(32))
    Ifp<>0Then
    ReDimPreservevWords(t)
      tmp=Left$(TempBron$,p-1)
      vWords(t)=StripString(tmp)
      TempBron$=Right$(TempBron$,Len(TempBron$)-p)
      t=t 1
      c=c p
    EndIf
  Nextc
  ReDimPreservevWords(t)
  vWords(t)=StripString(TempBron)

'checkingagainstspellingschecker
  vOke=False
  Forc=0Tot
    ForvCheck=0ToMax
      IfvCheckWord(vCheck)<>vWords(c)Then
        vOke=False
      Else
        vOke=True
        vCheck=Max
      EndIf
    NextvCheck
    IfNotvOkeThenMsgBoxvWords(c)
    vOke=False
  Nextc

EndSub


PrivateSubText1_KeyPress(KeyAsciiAsInteger)
  IfKeyAscii=13Then
    'splitstringintowords
    CallSplitStringintoWords(Text1.Text)
  EndIf

EndSub

FunctionStripString(sourceAsString)AsString
ConstLetters$="abcdefghijklmnopqrstuvwxyz"
Dimp,tmp$

  tmp=source$
  Forp=1ToLen(source$)
    IfInStr(Letters,LCase(Mid$(source$,p,1)))=0Then
      SelectCasep
      Case1
        tmp=Right$(source$,Len(source$)-p)
      CaseLen(source$)
        tmp=Left$(source$,Len(source$)-1)
      CaseElse
        tmp=Left$(source$,p)&Right$(source$,Len(source$)-p)
      EndSelect
    EndIf
  Nextp
  StripString=tmp

EndFunction

--6-------------------------------------------------------------

提問:
我需要幫助,如何判斷一個文件名是否有后綴名,然后剝除這個后綴。原本我是想獲得文件名,然后用另一個后綴名來把它存為一個備份文件。有沒有一個方便的方法,不用搜索整個路徑字符串中的“/”。

回答:
從路徑字符串的后面向前查找第一個“/”,用Right$命令,這樣你就可以得到文件名。
如果你要刪掉后綴名,也這么做,只是查找第一個“.”而已。注意在W95中,文件名可以包括一個以上的“.”

可以使用這樣的代碼:
Dimp

FunctionGetFileName(PathString$)AsString

GetFileName=PathString
Forp=Len(PathString)To0Step-1
IfMid$(PathString,p,1)="/"then
GetFileName=Right$(PathString,p)
ExitFunction
EndIf
Nextp
EndFunction->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 始兴县| 饶河县| 榆社县| 潜山县| 炉霍县| 钟祥市| 南城县| 绥阳县| 无极县| 腾冲县| 吉首市| 祁阳县| 太康县| 阜城县| 石林| 柳江县| 洛阳市| 彭阳县| 凤阳县| 张家界市| 屏东县| 石台县| 深圳市| 社旗县| 安阳市| 嵊州市| 库伦旗| 锡林浩特市| 溆浦县| 拜泉县| 白城市| 内江市| 航空| 上林县| 满洲里市| 湖州市| 榆社县| 赫章县| 宜城市| 溧水县| 武强县|