我想阅读没有HTML标签和标题的网站文本.我只需要在Web浏览器中显示的文本.
我不需要这样
<html>
<body>
bla bla </td><td>
bla bla
<body>
<html>
Run Code Online (Sandbox Code Playgroud)
我只需要文本"bla bla bla bla".
我已经使用webclient和httpwebrequest方法来获取HTML内容并拆分接收的数据,但这是不可能的,因为如果我更改网站,标签可能会更改.
那么有没有办法只能以网页方式获取网站上显示的文字?
我正在制作一个连接到网站并从中下载XML的程序.然后它将信息显示给用户.
我遇到的问题是,当我第一次打开程序并开始下载XML信息时,需要很长时间.当我在程序仍然打开的情况下从网站加载另一个页面时,下载大约需要半秒钟.我想知道是否有办法避免这种情况.
我目前使用HttpWebRequest下载流和StreamReader来读取它.然后我使用XLINQ来解析XML.
我有这个文本文件包含不同的字段.某些字段可能包含二进制数据.我需要获取文件中的所有数据,但是现在使用StreamReader时它不会读取二进制数据块和数据之后的内容.什么是解决这个问题的最佳解决方案?
例:
field1|field2|some binary data here|field3
Run Code Online (Sandbox Code Playgroud)
现在我在文件中读到这样的:
public static string _fileToBuffer(string Filename)
{
if (!File.Exists(Filename)) throw new ArgumentNullException(Filename, "Template file does not exist");
StreamReader reader = new StreamReader(Filename, Encoding.Default, true);
string fileBuffer = reader.ReadToEnd();
reader.Close();
return fileBuffer;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我知道二进制字段的开始和结束位置.
我刚刚发现YAJL项目正是我需要的.
但我更喜欢C++.当然我可以在C++项目中使用这个库,如果我真的想要编写我自己的包装器,但无论如何本机C++更可取.
我查看了JsonCPP,但看起来它无法从流中读取不完整的json数据.
是否还有其他用于解析json流的C++库?
更多要求:
我有以下代码,它打开一个文本文件并读取文件中的所有行并将其存储到字符串数组中.
然后检查字符串是否存在于数组中.然而,我面临的问题是,每当找到一个字符串时,它总是显示"有匹配"以及"没有匹配".知道如何解决这个问题吗?
检查此代码:
using (StreamReader sr = File.OpenText(path))
{
string[] lines = File.ReadAllLines(path);
for (int x = 0; x < lines.Length - 1; x++)
{
if (domain == lines[x])
{
sr.Close();
MessageBox.Show("there is a match");
}
}
if (sr != null)
{
sr.Close();
MessageBox.Show("there is no match");
}
}
Run Code Online (Sandbox Code Playgroud) 这段代码在VS 2010中完美运行.现在我已经拥有了VS 2013,它不再写入该文件.它没有错误或任何东西.(我在Notepad ++中收到警告,说明文件已更新,但没有写入.)
这对我来说都很好看.有任何想法吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
String line;
try
{
//Pass the file path and file name to the StreamReader constructor
StreamReader sr = new StreamReader("C:\\Temp1\\test1.txt");
StreamWriter sw = new StreamWriter("C:\\Temp2\\test2.txt");
//Read the first line of text
line = sr.ReadLine();
//Continue to read until you reach end of file
while (line != null)
{
//write the line to console window …Run Code Online (Sandbox Code Playgroud) 我必须处理一个文本文件并检查它是否以回车符结束.
我必须阅读整个内容,进行一些更改并将其重新写入目标文件,保持与原始格式完全相同的格式.这就是问题所在:我不知道原始文件是否包含换行符.
我已经尝试过了:
如何有效地读取文件的所有文本并确定它是否以换行符结束?
我有一个巨大的.csv文件,具体来说是一个.TAB有 2900 万行的文件,文件大小约为 600 MB。我需要把它读到一个IEnumerable集合中。
我已经尝试过CsvHelper,GenericParser和其他一些解决方案,但总是以内存不足异常告终
请建议一种方法来做到这一点
我试过了
var deliveryPoints = new List<Point>();
using (TextReader csvreader1 = File.OpenText(@"C:\testfile\Prod\PCDP1705.TAB")) //StreamReader csvreader1 = new StreamReader(@"C:\testfile\Prod\PCDP1705.TAB"))
using (var csvR1 = new CsvReader(csvreader1, csvconfig))
{
csvR1.Configuration.RegisterClassMap<DeliveryMap>();
deliveryPoints = csvR1.GetRecords<Point>().ToList();
}
using (GenericParser parser = new GenericParser())
{
parser.SetDataSource(@"C:\testfile\Prod\PCDP1705.TAB");
parser.ColumnDelimiter = '\t';
parser.FirstRowHasHeader = false;
//parser.SkipStartingDataRows = 10;
//parser.MaxBufferSize = 4096;
//parser.MaxRows = 500;
parser.TextQualifier = '\"';
while (parser.Read())
{
var address = new Point(); …Run Code Online (Sandbox Code Playgroud) StreamReader sr = new StreamReader("C:/CR EZ Test/Log.txt"); //use with IF
private void timer2_Tick(object sender, EventArgs e)
{
if ((line = sr.ReadLine()) != null)
{
//FileStream fs = File.Open("C:/CR EZ Test/Log.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
//StreamReader sr = new StreamReader(fs); //use with While can't use with }else{
//while ((line = sr.ReadLine()) != null)
//{
string[] dataLog = line.Split(new[] { ',' }, StringSplitOptions.None);
mpa = (dataLog[1]);
ml = (dataLog[2]);
lph = (dataLog[3]);
elapsedTime = float.Parse(dataLog[4]) / 1000;
if (testStatus > 0) time = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用下面的代码解析我的 json。我收到错误:
从 JsonReader 读取 JObject 时出错。路径 '',第 0 行,位置 0。
我想这可能是因为我的 JSON 格式错误,所以我输出了它,看起来没问题:
{
"serviceDeskId": "4",
"requestTypeId": "223",
"requestFieldValues": {
"summary": "test"
}
}
Run Code Online (Sandbox Code Playgroud)
但现在我完全陷入困境了。谁能看到我哪里出错了?这真让我抓狂!!
正是在这一行触发了错误:
var jsonresponse = JObject.Parse(response);
Run Code Online (Sandbox Code Playgroud)
完整代码片段:
req.ContentType = "application/json";
var json = JObject.Parse(
"{\"serviceDeskId\": \"4\",\"requestTypeId\": \"223\",\"requestFieldValues\": {\"summary\": \"" +
summary.Value + "\"}}");
jsonCheck = json.ToString();
using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
streamWriter.Write(json);
}
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
// Obtain a 'Stream' object associated with the response object.
Stream ReceiveStream = resp.GetResponseStream(); …Run Code Online (Sandbox Code Playgroud) streamreader ×10
c# ×9
.net ×3
json ×2
binary-data ×1
c++ ×1
csv ×1
datalog ×1
encoding ×1
html ×1
jsonreader ×1
newline ×1
stream ×1
streamwriter ×1
string ×1
system.net ×1
text-files ×1
webclient ×1