C# Basic Test
Replace string1 with string2 in all the files in a given folder including all the subfolders
The first way:
/********************************************************************************
* Copyright (C) SMU. All rights reserved.
*
* Author: ZHL(Zeng Hongliang)
* Email : KnightsWarrior@msn.com
* Blog : http://www.cnblogs.com/KnightsWarrior/
* Create Date: 28/08/2012 18:40:24 PM
* Description: Replace string1 with string2 in all the files in a given folder
* including all the subfolders
*
* Revision History:
* Date Author Description
* 28/08/2012 19:01:24 PM Zeng Hongliang
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ReplaceStingInTxtFile
{
class Program
{
static void Main(string[] args)
{
//string rootFolder = @"C:\TempFolder";
//string string1 = "he is";
//string string2 = "she is";
Console.WriteLine("Please input the root folder:");
string rootFolder = Console.ReadLine();
Console.WriteLine("Please input the string you want to replace:");
string string1 = Console.ReadLine();
Console.WriteLine("Please input the string you want to replace with:");
string string2 = Console.ReadLine();
Console.WriteLine("Replacing started...");
ReplaceString(rootFolder, string1, string2);
Console.WriteLine("Replacing finished...");
Console.ReadLine();
}
/// <summary>
/// Replace string1 with string2 in all the files in a given folder including all the subfolders
/// </summary>
/// <param name="rootFolder">Root folder</param>
/// <param name="string1">The string before replacing</param>
/// <param name="string2">The string after replaced</param>
private static void ReplaceString(string rootFolder, string string1, string string2)
{
DirectoryInfo d = new DirectoryInfo(rootFolder);
FileInfo[] fis = d.GetFiles();
foreach (var fi in fis)
{
if (IsTxtFile(fi.Name))
{
try
{
string contents = File.ReadAllText(fi.FullName);
contents = contents.Replace(string1, string2);
File.SetAttributes(fi.FullName, FileAttributes.Normal);
File.WriteAllText(fi.FullName, contents);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
DirectoryInfo[] ds = d.GetDirectories();
foreach (var info in ds)
{
ReplaceString(info.FullName, string1, string2);
}
}
/// <summary>
/// Check whether the file is txt file using fileName
/// </summary>
/// <param name="fileName">File Name</param>
/// <returns></returns>
private static bool IsTxtFile(string fileName)
{
if (fileName.IndexOf(".txt")>0)
{
return true;
}
else
{
return false;
}
}
}
}
The second way:
/********************************************************************************
* Copyright (C) SMU. All rights reserved.
*
* Author: ZHL(Zeng Hongliang)
* Email : KnightsWarrior@msn.com
* Blog : http://www.cnblogs.com/KnightsWarrior/
* Create Date: 28/08/2012 19:01:24 PM
* Description: Replace string1 with string2 in all the files in a given folder
* including all the subfolders
*
* Revision History:
* Date Author Description
* 28/08/2012 19:09:24 PM Zeng Hongliang
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ReplaceStingInTxtFile
{
class Program
{
static void Main(string[] args)
{
//string rootfolder = @"C:\TempFolder";
//string string1 = "You are";
//string string2 = "He is";
Console.WriteLine("Please input the root folder:");
string rootFolder = Console.ReadLine();
Console.WriteLine("Please input the string you want to replace:");
string string1 = Console.ReadLine();
Console.WriteLine("Please input the string you want to replace with:");
string string2 = Console.ReadLine();
Console.WriteLine("Replacing started...");
ReplaceString(rootFolder, string1, string2);
Console.WriteLine("Replacing finished...");
Console.ReadLine();
}
/// <summary>
/// Replace string1 with string2 in all the files in a given folder including all the subfolders
/// </summary>
/// <param name="rootFolder">Root folder</param>
/// <param name="string1">The string before replacing</param>
/// <param name="string2">The string after replaced</param>
public static void ReplaceString(string rootfolderName, string string1, string string2)
{
//Get all the txt files
string[] files = Directory.GetFiles(rootfolderName, "*.txt", SearchOption.AllDirectories);
foreach (string file in files)
{
try
{
//Read the file into string
string contents = File.ReadAllText(file);
contents = contents.Replace(string1, string2);
//Set attributes and write the string into the file
File.SetAttributes(file, FileAttributes.Normal);
File.WriteAllText(file, contents);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
The test folder as below:
DB Basic Test
/********************************************************************************
* Copyright (C) SMU. All rights reserved.
*
* Author: ZHL(Zeng Hongliang)
* Email : KnightsWarrior@msn.com
* Blog : http://www.cnblogs.com/KnightsWarrior/
* Create Date: 28/08/2012 18:40:24 PM
* Description: Create database and all the tables and insert simple data to these tables
*
* Revision History:
* Date Author Description
* 28/08/2012 19:01:24 PM Zeng Hongliang
*********************************************************************************/
--Create a database
CREATE DATABASE smu_db_test
GO
USE smu_db_test
GO
--Create all the tables
CREATE TABLE student
(
studentid INT NOT NULL,
studentname NVARCHAR (10),
gender CHAR(1),
mobileno NVARCHAR(13)
)
GO
ALTER TABLE student
ADD CONSTRAINT pk_studentid PRIMARY KEY (studentid)
GO
CREATE TABLE programme
(
programmeid INT NOT NULL,
programmename NVARCHAR(30)
)
GO
ALTER TABLE programme
ADD CONSTRAINT pk_programmeid PRIMARY KEY (programmeid)
GO
CREATE TABLE student_pro
(
studentid INT NOT NULL,
programmeid INT NOT NULL
)
GO
ALTER TABLE student_pro
ADD CONSTRAINT fk_studentid_student_pro FOREIGN KEY (studentid) REFERENCES
student (studentid)
GO
ALTER TABLE student_pro
ADD CONSTRAINT fk_programmeid_student_pro FOREIGN KEY (programmeid) REFERENCES
programme (programmeid)
GO
--Insert data into student table
INSERT INTO student (studentid, studentname, gender,mobileno) VALUES (1, 'Jason', 'M','82895894')
GO
INSERT INTO student (studentid, studentname, gender,mobileno) VALUES (2, 'Kitty', 'F','')
GO
INSERT INTO student (studentid, studentname, gender,mobileno) VALUES (3, 'Nance', 'M','')
GO
INSERT INTO student (studentid, studentname, gender,mobileno) VALUES (4, 'Harry', 'F','22334466')
GO
--Insert data into programme table
INSERT INTO programme (programmeid, programmename) VALUES (1, 'English')
GO
INSERT INTO programme (programmeid, programmename) VALUES (2, 'Chinese')
GO
--Insert data into student_pro table
INSERT INTO student_pro (studentid, programmeid) VALUES (1, 1)
GO
INSERT INTO student_pro (studentid, programmeid) VALUES (2, 2)
GO
INSERT INTO student_pro (studentid, programmeid) VALUES (3, 1)
GO
INSERT INTO student_pro (studentid, programmeid) VALUES (4, 2)
GO
The database and all the tables after processed the above SQL
The Query SQL:
SELECT A.programmeid,
A.programmename,
(SELECT COUNT(B.studentid)
FROM student B
INNER JOIN student_pro C ON B.studentid = C.studentid
AND C.programmeid =A.programmeid) AS #ofStudents,
(SELECT COUNT(B.studentid)
FROM student B
INNER JOIN student_pro C ON B.studentid = C.studentid
AND C.programmeid =A.programmeid
AND B.gender = 'M') AS #ofStudentsmale,
(SELECT COUNT(B.studentid)
FROM student B
INNER JOIN student_pro C ON B.studentid = C.studentid
AND C.programmeid =A.programmeid
AND B.gender = 'F') AS #ofStudentsfemale,
(SELECT COUNT(B.studentid)
FROM student B
INNER JOIN student_pro C ON B.studentid = C.studentid
AND C.programmeid =A.programmeid
AND B.mobileno <> '' AND B.mobileno IS NOT NULL) AS #ofStudentsmobile
FROM programme A
ORDER BY A.programmeid
The Results as below:
分享到:
相关推荐
Please note that SimpleSQL is a local database solution and cannot connect to server databases - Attach SQLite databases to managers in your scene - No need to move files around for mobile devices! -...
简单实用的C#类库,用于常用·图表的绘制,如数据采集等,支持多种显示模式;提供库文件的源代码及Demo版的源代码。
But, for a project, my friend 'anirban' required a JPEG encoder in C#. So, we started writing our own encoder. It turned out to be very complex and difficult. The one we wrote from scratch was really...
SimpleSQL 2.13.0.unitypackage UnitySQL插件 直接用实体类存储
对于初学游戏者的帮助比较大的,其中有单片机,ARM,数据结构,window编程,MFC编程,cocos2dx,unity3d自己编写的小游戏
SimpleSQL helps you integrate database storage into your game or project. Create level map links, store ...Please note that SimpleSQL is a local database solution and cannot connect to server databases
A simple Noughts And Crosses game
SimpleSQL.unitypackage 客户端简易SQL,方便存储数据
https://assetstore.unity.com/packages/tools/integration/simplesql-3845 unity资源商店最新版本,真2.8.0版本,需要的可放心下载。
SimpleSQL helps you integrate database storage into your game or project. Create level map links, store player stats, keep inventory specs, and much more!
Unity SimpleSQL_v2.11.1 是Unity简单的本地数据持久化功能,可用在Android、iOS、win、Mac 设备上运行
A simple JSON parser in C#
basemap 测试脚本simpletest.py
DeepFool: a simple and accurate method to fool deep neural networks.pdf
https://assetstore.unity.com/packages/tools/integration/simplesql-3845 unity资源商店最新版本,真2.8.0版本,需要的可放心下载。
go语言关系数据库简单的工具。减少代码中出现sql语句的频率
Data Analysis Using SQL and Excel, 2nd Edition shows you how to perform a wide range of sophisticated analyses using these simple tools, sparing you the significant expense of proprietary data mining ...
A simple remote tool in C#.
kml文件用来测试谷歌地图,需要的赶快下载吧