• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    關于字符串的操作

    發布: 2007-5-25 09:19 | 作者: 未知 | 來源: programfan.com | 查看: 37次 | 進入軟件測試論壇討論

    領測軟件測試網 提問:
    假設我從Excel表格中復制了一些數據到剪貼板中,比如是這樣一些信息:
    Allen 12
    Anderson 13
    Douglas 12
    Ohio 49

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

    回答:
    新建一個項目,在窗體上放兩個label和一個command。以下是代碼:
    Private Sub Command1_Click()
      Dim vTekst$
      
      vTekst$ = "Allen 12 "
      vTekst$ = vTekst$ & "Anderson 13 "
      vTekst$ = vTekst$ & "Bernard 14 "
      vTekst$ = vTekst$ & "Constance 15 "
      Label1.Caption = vTekst$
      
      Select Case Command1.Caption
      Case "Copy Clipboard"
        Clipboard.Clear
        Clipboard.SetText Label1.Caption
        Command1.Caption = "Put into Label"
      Case "Put into Label"
        Label2.Caption = GetPartofString(Clipboard.GetText, 1)
        Command1.Caption = "Copy Clipboard"

        'read in array
        Dim vText(7) As String
        Dim c%
      
        For c% = 0 To 7
          vText(c%) = GetPartofString(Clipboard.GetText, c% + 1)
        Next c%
        
        'show result
        For c% = 0 To 7
          MsgBox vText(c%)
        Next c%

    End Sub

    Private Function GetPartofString(source$, part%) As String
      Dim p%, c%, tmp$
      
      tmp$ = source$
      c% = 0
      Do
        p% = InStr(tmp, Chr(32))
        If p% <> 0 Then
          GetPartofString = Left(tmp, p% - 1)
          c% = c% + 1
          tmp = Right(tmp, Len(tmp) - p%)
        End If
      Loop While c% <> part%
      
    End Function
    --1-------------------------------------------------------------

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

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

    Public Function CountCharacters(source$) As Integer
      Dim counter%, t%
      Const Characters$ = "abcdefghijklmnopqrstuvwxyz"

      For t% = 1 To Len(source$)
        If InStr(Characters, LCase$(Mid$(source$, t%, 1))) <> 0 Then
          counter% = counter% + 1
        End If
      Next t%
      CountCharacters = counter%
    End Function

    使用時就象這樣:
    vString$ = "Testing .... about what?"
    MsgBox CountCharacters(vString$)

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

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

    回答:
    Dim vChar() as String

    Sub PlaceInArray(source$)

    Dim p%

    For p% = 1 To Len(source$)
    Redim Preserve vChar(p%)
    vChar(p%) = Mid$(source$,p%,1)
    Next p%
    End Sub
    在數組vChar的每一項中就分別是給出字符串的所有字母。

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

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

    回答:
    Dim vWords() as String

    Sub SplitStringintoWords(bron$)
    Dim c%, p%, t%, vCheck%
    Dim TempBron$, tmp$

    '把一行輸入分成單詞
      t% = 0
      TempBron$ = bron$
      For c% = 1 To Len(bron$)
        p% = InStr(TempBron$, Chr(32))
        If p% <> 0 Then
        ReDim Preserve vWords(t%)
          tmp = Left$(TempBron$, p% - 1)
          vWords(t%) = StripString(tmp)
          TempBron$ = Right$(TempBron$, Len(TempBron$) - p)
          t% = t% + 1
          c% = c% + p%
        End If
      Next c%
      ReDim Preserve vWords(t%)
      vWords(t%) = StripString(TempBron)

    End Sub

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

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

    回答:
    試試這個……

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

    Private Sub Command1_Click()
      Const vString$ = "testing for somebody on the net"
      Select Case Command1.Caption
      Case "&Replace text in all textboxes"
        Text1.Text = vString
        Text2.Text = vString
        Text3.Text = vString
        Command1.Caption = "&Replace somebody with me"
      Case "&Replace somebody with me"
        Call ChangeText
        Command1.Caption = "&Replace text in all textboxes"
      End Select
      
    End Sub

    Function sReplace(SearchLine As String, SearchFor As String, ReplaceWith As String)
      Dim vSearchLine As String, found As Integer
      
      found = InStr(SearchLine, SearchFor): vSearchLine = SearchLine
      If found <> 0 Then
        vSearchLine = ""
        If found > 1 Then vSearchLine = Left(SearchLine, found - 1)
        vSearchLine = vSearchLine + ReplaceWith
        If found + Len(SearchFor) - 1 < Len(SearchLine) Then _
          vSearchLine = vSearchLine + Right$(SearchLine, _
      Len(SearchLine) - found - Len(SearchFor) + 1)
      End If
      sReplace = vSearchLine
      
    End Function

    Private Sub ChangeText()
      Dim Control

      For Each Control In Form1.Controls
        If TypeOf Control Is TextBox Then
          Control.Text = sReplace(Control.Text, "somebody", "me")
        End If
      Next Control
        
    End Sub
    --5-------------------------------------------------------------

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

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

    'on the general section
    Dim vWords()
    Dim Max%
    Dim vCheckWord()

    Private Form1_Load()
      Text1.SetFocus
      Text1.Text = "living in america but not really"
      Max% = 10
      
      'make array
      'you can use an ascii file to get the words
      Redim vCheckWord(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"

    End Sub

    Sub SplitStringintoWords(bron$)
    Dim c%, p%, t%, vCheck%
    Dim TempBron$, tmp$
    Dim vOke As Boolean

    'splitting the input into words
      t% = 0
      TempBron$ = bron$
      For c% = 1 To Len(bron$)
        p% = InStr(TempBron$, Chr(32))
        If p% <> 0 Then
        ReDim Preserve vWords(t%)
          tmp = Left$(TempBron$, p% - 1)
          vWords(t%) = StripString(tmp)
          TempBron$ = Right$(TempBron$, Len(TempBron$) - p)
          t% = t% + 1
          c% = c% + p%
        End If
      Next c%
      ReDim Preserve vWords(t%)
      vWords(t%) = StripString(TempBron)

    'checking against spellingschecker
      vOke = False
      For c% = 0 To t%
        For vCheck% = 0 To Max
          If vCheckWord(vCheck%) <> vWords(c%) Then
            vOke = False
          Else
            vOke = True
            vCheck% = Max%
          End If
        Next vCheck%
        If Not vOke Then MsgBox vWords(c%)
        vOke = False
      Next c%

    End Sub


    Private Sub Text1_KeyPress(KeyAscii As Integer)
      If KeyAscii = 13 Then
        'split string into words
        Call SplitStringintoWords(Text1.Text)
      End If
        
    End Sub

    Function StripString(source As String) As String
    Const Letters$ = "abcdefghijklmnopqrstuvwxyz"
    Dim p%, tmp$

      tmp = source$
      For p% = 1 To Len(source$)
        If InStr(Letters, LCase(Mid$(source$, p%, 1))) = 0 Then
          Select Case p%
          Case 1
            tmp = Right$(source$, Len(source$) - p%)
          Case Len(source$)
            tmp = Left$(source$, Len(source$) - 1)
          Case Else
            tmp = Left$(source$, p%) & Right$(source$, Len(source$) - p%)
          End Select
        End If
      Next p%
      StripString = tmp
          
    End Function

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

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

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

    可以使用這樣的代碼:
    Dim p%

    Function GetFileName(PathString$) As String

    GetFileName = PathString
    For p% = Len(PathString) To 0 Step -1
    If Mid$(PathString,p%,1) = "\" then
    GetFileName = Right$(PathString,p%)
    Exit Function
    End If
    Next p%
    End Function

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>