一些字符串操作的问题和回答_VB.net_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

一些字符串操作的问题和回答

作者:黑客防线网安VB教程基地 来源:黑客防线网安VB教程基地 浏览次数:0

本篇关键词:回答问题操作字符串
黑客防线网安网讯:提问:  假设我从Excel表格中复制了一些数据到剪贴板中,比如是这样一些信息:  Allen12  Anderson13  Douglas12  Ohio49    我怎样才能把这些名字和数字读进一个数组或者一个...
提问:
  假设我从Excel表格中复制了一些数据到剪贴板中比如是这样一些信息:
  Allen12
  Anderson13
  Douglas12
  Ohio49
  
  我怎样才能把这些名字和数字读进一个数组或者一个Grid框中呢?用Clipboard.GetText(vbCFText)只能一下子读入所有数据而我希望一个一个地读
  
  回答:
  新建一个项目,在窗体上放两个label和一个command以下是代码:
  PrivateSubCommand1_Click()
  DimvTekst$
  
  vTekst$="Allen12"
  vTekst$=vTekst$&"Anderson13"
  vTekst$=vTekst$&"Bernard14"
  vTekst$=vTekst$&"Constance15"
  Label1.Caption=vTekst$
  
  SelectCaseCommand1.Caption
  Case"CopyClipboard"
  Clipboard.Clear
  Clipboard.SetTextLabel1.Caption
  Command1.Caption="PutintoLabel"
  Case"PutintoLabel"
  Label2.Caption=GetPartofString(Clipboard.GetText,1)
  Command1.Caption="CopyClipboard"
  
  'readinarray
  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-------------------------------------------------------------
  
  提问:
  你怎样把一个文本文件中的单词一个一个读入字符串变量中?文件中每个单词都被空格分隔。
  
  回答:
  DimvWords()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->

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14505-1.html
网站维护教程更新时间:2012-04-03 01:07:53  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer