-
C# OpenRead获取网站源代码,并保存到TXT文件Stream流中
C#获取网页源代码,并将其保存为TXT文件,这里应用了OpenRead和Stream流方法,具体的实现,请参见以下代码:
richTextBox1.Text = string.Empty;
WebClient wclient = new WebClient();//实例化WebClient类对象
wclient.BaseAddress = textBox1.Text;//设置WebClient的基URI
wclient.Encoding = Encoding.UTF8;//指定下载字符串的编码方式
//为WebClient类对象添加标头
wclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
//使用OpenRead方法获取指定网站的数据,并保存到Stream流中
Stream stream = wclient.OpenRead(textBox1.Text);
//使用流Stream声明一个流读取变量sreader
StreamReader sreader = new StreamReader(stream);
string str = string.Empty;//声明一个变量,用来保存一行从WebCliecnt下载的数据
//循环读取从指定网站获得的数据
while ((str = sreader.ReadLine()) != null)
{
richTextBox1.Text += str + "
";
}
//调用WebClient对象的DownloadFile方法将指定网站的内容保存到文件中
wclient.DownloadFile(textBox1.Text, DateTime.Now.ToFileTime() + ".txt");
MessageBox.Show("保存到文件成功");
- 2022-02-02 08:55:49下载
- 积分:1
-
C#以二进制格式打开和保存文件
C#使用BinaryWriter、BinaryReader对象分别保存和读取二进制文件,程序分两部分,先来看第一部分:
C#以二进制格式保存文件:设置保存文件的格式:
saveFileDialog1.Filter = "二进制文件(*.dat)|*.dat";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//使用“另存为”对话框中输入的文件名实例化FileStream对象
FileStream myStream = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//使用FileStream对象实例化BinaryWriter二进制写入流对象
BinaryWriter myWriter = new BinaryWriter(myStream);
//以二进制方式向创建的文件中写入内容
myWriter.Write(textBox1.Text);
//关闭当前二进制写入流
myWriter.Close();
//关闭当前文件流
myStream.Close();
textBox1.Text = string.Empty;
}
打开文件时同样也是以二进制来打开读取文件内容:
//设置打开文件的格式
openFileDialog1.Filter = "二进制文件(*.dat)|*.dat";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = string.Empty;
//使用“打开”对话框中选择的文件名实例化FileStream对象
FileStream myStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
//使用FileStream对象实例化BinaryRea
- 2022-02-14 18:03:07下载
- 积分:1
-
C#播放wmv视频并填充到文字轮廓中
C#播放wmv视频并填充到文字轮廓中,这个应该是一个艺术字效果吧,本程序实现了两个功能:一、视频文件播放功能(wmv),二、将视频影像填充到文字轮廓中显示,这个就有意思了,最终实现了比较动感的艺术字动画效果,在视频播放方面,主要使用MediaElement();实现,文字填充方面,基于TextBlock.Foreground实现,下面是具体一些的代码:
使用视频剪辑填充文字的线条
MediaElement MyMediaElement = new MediaElement();
MyMediaElement.Source = new Uri("Bear.wmv", UriKind.Relative);
MyMediaElement.IsMuted = true;
VisualBrush MyVisualBrush = new VisualBrush();
MyVisualBrush.Visual = MyMediaElement;
TextBlock MyTextBlock = new TextBlock();
MyTextBlock.FontFamily = new FontFamily("宋体");
MyTextBlock.FontSize = 180;
MyTextBlock.Text = "编程";
MyTextBlock.FontWeight = FontWeights.Bold;
MyTextBlock.Foreground = MyVisualBrush;
this.Content = MyTextBlock;
运行截图如下,不过本站截图是静态的,看不到本示例的动画效果,请下载源码在VS中编译运行,查看效果。
- 2022-01-26 01:31:34下载
- 积分:1
-
C# 水晶报表CrystalReport导出各类型文件的例子
C# 水晶报表导出各类型文件的例子,将水晶报表数据导出为Word文件、Excel文件、HTML文件、PDF文件,并获取水晶报表的数据库连接项,设置CrystalReport水晶报表的数据库登录选项等。相关的代码片段:
private void button7_Click(object sender, EventArgs e)
{//将水晶报表数据导出为HTML文件
var MyFileName = "MyHTMLFile.htm";
var MyExportOptions = new ExportOptions();
var MyHtml32FormatOptions = new HTMLFormatOptions();
MyExportOptions.ExportFormatType = ExportFormatType.HTML32;
MyHtml32FormatOptions.HTMLBaseFolderName = "Html32Folder";
MyHtml32FormatOptions.HTMLFileName = MyFileName;
MyHtml32FormatOptions.HTMLEnableSeparatedPages = false;
MyHtml32FormatOptions.HTMLHasPageNavigator = false;
MyExportOptions.FormatOptions = MyHtml32FormatOptions;
this.CrystalReport11.Export(MyExportOptions);
MessageBox.Show("成功导出文件:" + MyFileName, "信息提示", MessageBoxButtons.OK);
}
private void button8_Click(object sender, EventArgs e)
{//将水晶报表数据导出为PDF文件
var MyFileName = "MyPDFFile.pdf";
var MyExportOptions = new ExportOptions
- 2022-04-11 03:03:59下载
- 积分:1
-
C# 图像控件显示绘制的几何图形
C# 使用图像控件显示绘制的多个几何图形,可一次显示多个绘制的图形,相关代码如下:
GeometryGroup MyGeometry = new GeometryGroup();
MyGeometry.Children.Add(new EllipseGeometry(new Point(50, 50), 45, 20));
MyGeometry.Children.Add(new EllipseGeometry(new Point(50, 50), 20, 45));
RectangleGeometry MyRectangle = new RectangleGeometry();
MyRectangle.Rect = new Rect(2, 2, 96, 96);
MyGeometry.Children.Add(MyRectangle);
GeometryDrawing MyDrawing = new GeometryDrawing();
MyDrawing.Geometry = MyGeometry;
MyDrawing.Pen = new Pen(Brushes.Blue, 3);
DrawingImage MyImage = new DrawingImage();
MyImage.Drawing = MyDrawing;
MyImage.Freeze();
this.image1.Source = MyImage;
- 2022-03-07 01:28:50下载
- 积分:1
-
C# WPF 文字动态旋转动画
C# WPF 文字动态旋转动画,这个是动态的,文字以动画方式旋转360度,无缝旋转,WPF制作动画效果还是挺方便的,这个例子十分简单,文字的旋转也可变通为图片的旋转。运行效果图如下示。
- 2022-11-09 17:45:04下载
- 积分:1
-
C# 中文简体繁体转换小程序源码
Visual C# 简繁体转换,实现中文汉字的简体繁体转换功能,相信这个C#小程序源码会很实用吧,经常用到。编译运行后,请输入要转换的文字,单击对应的按钮,即可实现转换功能,绑定在对应按钮上的代码如下:
C#中文繁体转简体源码:
private void button1_Click(object sender, EventArgs e)
{
string src = txtSrcText.Text.Trim();
byte[] srcByte = Encoding.Default.GetBytes(src);
byte[] desByte = new byte[srcByte.Length];
LCMapString(2052, LCMAP_SIMPLIFIED_CHINESE, srcByte, -1, desByte, srcByte.Length);
string des = Encoding.Default.GetString(desByte);
txtDesText.Text = des;
}
C#中文简体转繁体源码:
private void button2_Click(object sender, EventArgs e)
{
string src = txtSrcText.Text.Trim();
byte[] srcByte = Encoding.Default.GetBytes(src);
byte[] desByte = new byte[srcByte.Length];
LCMapString(2052, LCMAP_TRADITIONAL_CHINESE, srcByte, -1, desByte, srcByte.Length);
string des = Encoding.Default.GetString(desByte);
txtDesText.Text = des;
}
- 2022-03-12 07:23:03下载
- 积分:1
-
STM32F1的SPWM逆变器源码
#include "SPWM.h"
#include "led.h"
#include "usart.h"
u16 TimerPeriod = 7200;
u16 DutyFactor = 50;
void TIM_Int_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 | RCC_APB1Periph_TIM3,ENABLE); //时钟使能
/* GPIOA配置:通道PA.6和PA.7作为输出引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
&nbs
- 2022-07-26 17:50:34下载
- 积分:1
-
Visual C# 多线程异步抓取网页 网络爬虫控制台程序模拟
Visual C# 多线程异步抓取网页 网络爬虫控制台程序模拟,程序中定义了一个网页类爬虫程序,通过此程序可获得本网页的网址、网页标题、网页的所有链接信息,只读方式,并且返回网页的全部纯文本信息,获得本网页的大小,从HTML代码中分析出链接信息,从一段HTML文本中提取出一定字数的纯文本,提取网页中一定字数的纯文本,包括链接文字,从本网页的链接中提取一定数量的链接,该链接的URL满足某正则式,从本网页的链接中提取一定数量的链接,该链接的文字满足某正则式等等。
- 2022-05-18 08:50:12下载
- 积分:1
-
一个C# 多线程的网页异步抓取类文件代码
一个C#编写的多线程异步抓取网页的网络爬虫控制台程序类代码,这个类实现对网页URL指定内容网页的抓取,并抓取 内容中的链接、文字内容、从HTML代码中分析出链接信息等,本类中还定义了大量的私有方法,从这些私有方法中可从HTML文本中提取出一定字数的纯文本、提取网页中一定字数的纯文本,包括链接文字、提取一定数量的链接,该链接的URL满足某正则式、提取本网页的纯文本中满足某正则式的文字等。
本代码作者:大黑。
本爬虫程序的速度如下:
10线程最快大概400个链接每分钟
6-8线程最快大概200-300个链接每分钟
2-4线程最快大概150-200个链接每分钟
单线程最快大概70-100个链接每分钟
之所以用多线程异步抓取完全是出于效率考虑,本程序多线程同步并不能带来速度的提升,只要抓取的网页不要太多重复和冗余就可以,异步并不意味着错误。
- 2023-05-03 15:55:03下载
- 积分:1