您当前的位置:首页 > 互联网教程

如何用VB.NET生成一个随机字符串

发布时间:2025-05-13 03:54:02    发布人:远客网络

如何用VB.NET生成一个随机字符串

一、如何用VB.NET生成一个随机字符串

1、用法 RndString(xx) xx为随机数字长度

2、比如12位长度的随机字符串则为 RndString(12)

3、字符串包含数字和大小写字母,函数如下:

4、 Function RndString(ByVal l As Integer) As String

5、 R= Int(Rnd()* 62)'随机生成的字符有大小写字母和数字,共有26个

6、 If R< 10 Then'如果小于10,则是数字数字的ASCII是48-57对应随机数字 0-9所以要将随机数字加48

7、 S= Chr(R+ 48)'Chr是将把数字按Ascii码转换为对应的字符

8、 ElseIf R< 36 Then'如果小于36,则是大写字母大写字母的ASCII是65-90对应随机数字10-35所以要将随机数字加55

9、 Else'如果大于36,则是小写字母小写字母的ASCII是97-122对应随机数字36-62所以要将随机数字加61

二、vb.net获取mp3的歌曲名和其他属性

1、一首MP3歌曲除了音乐信息外,还包含了如歌名、演唱者等信息,当我们用winamp软件听音乐时,播放清单就自动将这些信息读出来。大部分人都喜欢从网上下载音乐,但下载下来的MP3文件名都是文件上传系统自动取名的,和歌曲本身根本不相符,所以,给用户带来了很大的麻烦。但是,懒人有懒人的做法,我们何不自己写一个程序,将歌曲信息自动读出来并为MP3文件自动更名呢?

2、下面以C#为工具,把开发过程写出来。

3、一首MP3的额外信息存放在文件的最后面,共占128个字节,其中包括以下的内容(我们定义一个结构说明):

4、public string identify;//TAG,三个字节

5、public string Title;//歌曲名,30个字节

6、public string Artist;//歌手名,30个字节

7、public string Album;//所属唱片,30个字节

8、public string Year;//年,4个字符

9、public string Comment;//注释,28个字节

10、public char reserved1;//保留位,一个字节

11、public char reserved2;//保留位,一个字节

12、public char reserved3;//保留位,一个字节

13、所以,我们只要把MP3文件的最后128个字节分段读出来并保存到该结构里就可以了。函数定义如下:

14、private byte[] getLast128(string FileName)

15、FileStream fs= new FileStream(FileName,FileMode.Open,FileAccess.Read);

16、stream.Seek(-128,SeekOrigin.End);

17、byte[] Info= new byte[seekPos];

18、rl= stream.Read(Info,0,seekPos);

19、再对上面返回的字节数组分段取出,并保存到Mp3Info结构中返回。

20、///从MP3文件中截取的二进制信息

21、private Mp3Info getMp3Info(byte[] Info)

22、Mp3Info mp3Info= new Mp3Info();

23、int position= 0;//循环的起始值

24、int currentIndex= 0;//Info的当前索引值

25、byte[] bytTitle= new byte[30];//将歌名部分读到一个单独的数组中

26、mp3Info.Title= this.byteToString(bytTitle);

27、byte[] bytArtist= new byte[30];//将歌手名部分读到一个单独的数组中

28、mp3Info.Artist= this.byteToString(bytArtist);

29、byte[] bytAlbum= new byte[30];//将唱片名部分读到一个单独的数组中

30、mp3Info.Album= this.byteToString(bytAlbum);

31、byte[] bytYear= new byte[4];//将年部分读到一个单独的数组中

32、mp3Info.Year= this.byteToString(bytYear);

33、byte[] bytComment= new byte[28];//将注释部分读到一个单独的数组中

34、mp3Info.Comment= this.byteToString(bytComment);

35、mp3Info.reserved1=(char)Info[++position];

36、mp3Info.reserved2=(char)Info[++position];

37、mp3Info.reserved3=(char)Info[++position];

38、private string byteToString(byte[] b)

39、Encoding enc= Encoding.GetEncoding("GB2312");

40、str= str.Substring(0,str.IndexOf('\0')>= 0? str.IndexOf('\0'): str.Length);//去掉无用字符

41、改名怎么办呢?我们按(演唱者)歌名的格式对歌曲进行改名,程序如下:

42、private bool ReName(string filePath)

43、Mp3Info mp3Info= new Mp3Info();

44、mp3Info= this.getMp3Info(this.getLast128(filePath));//读出文件信息

45、mp3Info.Artist= this.DeleteNotValue(mp3Info.Artist);

46、mp3Info.Title= this.DeleteNotValue(mp3Info.Title);

47、if(mp3Info.Artist.Trim().Length==0)

48、if(mp3Info.Title.Trim().Length==0)

49、File.Move(filePath,filePath.Substring(0,filePath.ToLower().LastIndexOf("\\")).Trim()+"\\"+"("+ mp3Info.Artist.Trim()+")"+mp3Info.Title.Trim()+".mp3");

三、高分悬赏: VB.net 字符串 转换问题

1、因为每个汉字的编码都是双字节的,如果是字母或数字高字节就是“00”,低字节则是这个字母或数字的ASC码,你可以把高字节舍去,再用CHR()函数就可以进行还原;

2、解决方法是查找字符串中的“00”,找到后把后面两个字符用CHR()函数转换成字母或数字,然后再把“00”删除,再用循环控制知道找不到“00”