|
|
|
สอบถามเกี่ยวกับโค้ดการ วนลูป ของ C# ครับ อยากทำระบบการตรวจสอบไฟล์ หรือ check file ครับ |
|
|
|
|
|
|
|
ตัวอย่างครับ ลองเอาไปประยุกต์ใช้งาน
Code (C#)
using System.Data.SqlClient;
using System.Data;
using System.IO;
using System.ComponentModel;
...
private void CheckFile()
{
DirectoryInfo _drInfo = new DirectoryInfo (@"D:\Music\");
FileInfo[] _arrayInfo = _drInfo.GetFiles("*.*");
if (con.State == ConnectionState.Open) con.Close();
con.ConnectionString = @"Data Source=127.0.0.1\sql2008;Initial Catalog=ThaiCreateDB;User ID=sa;Password=sa;";
con.Open();
BindingList<DocumentFile> BDLDoc = new BindingList<DocumentFile>();
foreach (FileInfo var in _arrayInfo)
{
string _fileName = var.Name.ToString();
sb.Remove(0, sb.Length);
sb.Append(" select * from DocumentFile ");
sb.Append(" where filenames = '" + _fileName.Replace ("'","") + "'");
DataSet dsFile = new DataSet();
da = new SqlDataAdapter(sb.ToString(),con);
da.Fill(dsFile, "dtFile");
if (dsFile.Tables["dtFile"].Rows.Count != 0)
{
DocumentFile _DocFile = new DocumentFile();
_DocFile.FileNames = dsFile.Tables["dtFile"].Rows[0]["filenames"].ToString();
BDLDoc.Add(_DocFile);
}
}
if (BDLDoc.Count != 0)
this.dataGridView1.DataSource = BDLDoc;
}
public class DocumentFile
{
private string _filenames = "";
public string FileNames
{
get { return _filenames; }
set { _filenames = value; }
}
}
|
|
|
|
|
Date :
2012-11-27 14:12:06 |
By :
latee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ ขอ ลอง ไป ประยุกต์ ใช้ หน่อย นะครับ
เอ่อ คือว่า code คุณ tee มันคือ code อะไร อะครับ
|
|
|
|
|
Date :
2012-11-27 14:27:21 |
By :
onjun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรวจสอบจากอะไรบ้างจ๊ะ เช่น filename, filetype หรือ filesize
ถ้าจะ filename ต้องการแบบว่าชื่อใกล้เคียงหรือเปล่า หรือเอาแบบเหมือนกันตรงๆ
|
|
|
|
|
Date :
2012-11-28 08:02:50 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรวจสอบจากอะไรบ้างจ๊ะ เช่น filename, filetype หรือ filesize
ถ้าจะ filename ต้องการแบบว่าชื่อใกล้เคียงหรือเปล่า หรือเอาแบบเหมือนกันตรงๆ
แบบเหมือนตรงๆ อะครับ พี่
ถ้าอยาก ให้ ตรวจ สอบ ทั้งหมดใน ฐานข้อมูล เรา เลย อะครับ พี่ พอจะ ทำได้ไหม ครับ ขอคำแนะนำ หน่อย ครับ
ขอบคุณครับ
|
|
|
|
|
Date :
2012-11-28 09:11:47 |
By :
lovelyday4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก opendialog เราจะได้ filename มา
ก็เอา filename ไป query ใน db ได้เลย
ประมาณนี้แหละ
Code (C#)
bool result = ((from f in db.Files
where f.FileName == filename
select f).FirstOrDefault() != null) ? true : false;
|
|
|
|
|
Date :
2012-11-28 11:39:45 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
bool result = ((from f in db.Files
where f.FileName == filename
select f).FirstOrDefault() != null) ? true : false;
แล้ว เรา จะเอาโค้ไปใส่ ไว้ตรงไหน อะครับ
แล้ว มัน จะตรวจสอบไฟล์ที่รับมาใหม่ ยังไง อะครับ
ผม ลอง เขียนโค้ด อ่านไฟล์ ดู แล้วรันได้ ปกติ แต่ ก็มี แค่ หน้า ฟอร์ม อะครับ ไม่รู้ จะ เอาไฟล์ text ไป รัน ตรวจสอบ ยัง ไง ครับ
|
|
|
|
|
Date :
2012-11-28 15:46:50 |
By :
lovelyday4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาโค้ด คุณมาโพส เลยครับ ติดตรงไหน จะได้ช่วย ให้ตรงกับความต้องการของคุณ
|
|
|
|
|
Date :
2012-11-29 12:57:53 |
By :
tee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
private void Form1_Load(object sender, EventArgs e)
{
string strline = null;
//ใช้สำหรับอ่านไฟล์ที่ละบรรทัด
string[] strtext = null;
//ใช้สำหรับเก็บข้อความแบบ array
string str_textLoop = null;
string strData = null;
StreamReader SR = new StreamReader("C:\\input.txt");
int i = 0;
char[] delim = { ' ' };
string checkstr = null;
string strHeader = null;
string strCheckHeader = null;
i = 0;
while (SR.Peek() != -1)
{
strline = SR.ReadLine();
i = strline.Length;
//ตัดอักษรตัวแรกของแต่ละบรรทัด เช่น H01 MR. = H
checkstr = strline.Substring(0, 1);
//ตัดข้อความ เช่น H02 PETER = strtext[0] = H02 , strtext[1] = PETER
strtext = strline.Split(delim);
i = 0;
foreach (string str_textLoop_loopVariable in strtext)
{
str_textLoop = str_textLoop_loopVariable;
//ตัดอักษรตัวแรกของ array เพื่อตรวจสอบว่าตรงกับตัวแรกของบรรทัดหรือไม่
strCheckHeader = str_textLoop.Substring(0, 1);
//ใช้ strHeader เก็บค่า Header สำหรับตรวจสอบค่าอักษรตัวแรก
if (string.IsNullOrEmpty(strHeader))
{
//ตรวจสอบว่าถ้า strHeader ไม่มีค่า ให้เท่ากับ checkstr อักษรตัวแรกของแต่ละบรรทัด เช่น H01 MR. = H
strHeader = checkstr;
//เก็บค่าอักษรตัวแรกไว้ใน strData
strData += strHeader;
//ถ้า strHeader ไม่เท่ากับ checkstr ในบรรทัดใหม่
}
else if (strHeader != checkstr)
{
//เป็นค่า strHeader ตาม checkstr
strHeader = checkstr;
//ต่อสตริง strData โดยให้ขึ้นบรรทัดใหม่ และ ต่อด้วย strHeader ตัวใหม่
strData += "\r\n" + strHeader;
}
else
{
//ถ้า strHeader ไม่เท่ากับ strCheckHeader แสดงว่า
if (strHeader != strCheckHeader)
{
//ถ้าจำนวน array ในแต่ละบรรทัด >= 2
if (i >= 2)
{
// นำข้อความมาต่อสตริง โดยเว้นวรรค 1 ตัวอักษร
strData += " " + str_textLoop;
}
else
{
//ถ้าจำนวนarray = 0 or 1 ให้ นำข้อความมาต่อสตริง โดยขั้นด้วย เครื่องหมาย "|"
strData += "|" + str_textLoop;
}
}
}
//นับจำนวน array ในแต่ละบรรทัด
i = i + 1;
}
StreamWriter TextFile = new StreamWriter("output1.txt");
//TextFile.WriteLine(str & ControlChars.CrLf & " " & ControlChars.CrLf)
TextFile.WriteLine(strData + "\r\n");
Console.WriteLine("Text File created output1.txt");
TextFile.Close();
}
SR.Close();
}
นี่โค้ดอ่านไฟล์ที่ผมศึกษาแล้วมาลองเขียน ครับ
แต่ผมอยากให้ระบบ มัน รับไฟล์ text มา แล้ว เช็คไฟล์ ในฐานข้อมูลว่ามีข้อมูลไฟล์นี้ ในฐานข้อมูลหรือยัง อะครับ
เช่น ในไฟล์ text ใหม่ มี ID เป็น 0001 ก็ให้ไป เชกในฐานข้อมูล ว่า มี ไฟล์ นี้ หรือยัง อะครับ
|
|
|
|
|
Date :
2012-11-29 23:28:24 |
By :
lovelyday4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|