Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > อ่านข้อมูล text file....ผมติดปัญหาเรื่องของการอ่านข้อมูล text file ซึ่งผมต้องการเก็บข้อมูลเลขที่บัตรประชาชน



 

อ่านข้อมูล text file....ผมติดปัญหาเรื่องของการอ่านข้อมูล text file ซึ่งผมต้องการเก็บข้อมูลเลขที่บัตรประชาชน

 



Topic : 044152

Guest




ผมติดปัญหาเรื่องของการอ่านข้อมูล text file ซึ่งผมต้องการเก็บข้อมูลเลขที่บัตรประชาชน และจำนวนเงิน ดังไฮไลน์ ด้านล่าง พอดีว่า format ของระยะไม่เท่ากัน ผมไม่รู้จะอ่านข้อมูลยังไงแล้วครับ กรุณาช่วยด้วยครับ


D000002014596301756017052010083048 350070041827012 0 05960368CCSH00000000000000301000000
D000003014596301756017052010083129อุทัย ขวัญไพโรจน์กิจ 1500300052018 150030005201832 07341209CCSH00000000000000601000000



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-06-17 15:03:37 By : เด็กหัดเขียน View : 2324 Reply : 25
 

 

No. 1



โพสกระทู้ ( 198 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ทำไมไม่ทำให้ข้อมูลแยกบรรทัดกันล่ะคับ จะได้อ่านได้ง่ายขึ้น






Date : 2010-06-17 16:48:27 By : anucham
 


 

No. 2



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


regular expression ช่วยท่านได้ครับ

ปล. ไม่ต้องถามต่อนะว่าใช้ยังไง เพราะจะให้ไปศึกษาเอาเอง
Date : 2010-06-17 16:58:39 By : tungman
 

 

No. 3



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ไม่เข้าใจค่ะพี่ตึ๋ง
Date : 2010-06-17 18:39:24 By : blurEyes
 


 

No. 4



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เอาอีกแล้วรึท่าน

มันมีสองส่วนที่ต้องเก็บใช่ไหม คือ citizen id กับ เงิน

ขั้นแรกก็ต้อง split ก่อนโดยการใช้ ' ' space จะได้ array of string

เอาไปวนลูป ส่งไปตรวจสอบว่าอันไหนเป็น citizen id หรือ เงิน

โดย citizen id ใช้ method ตรวจสอบเลขบัตรประชาชน

และเงินให้ใช้ regular expression

แต่ต้องตรวจสอบทั้งสองอันนะ
Date : 2010-06-17 19:46:08 By : tungman
 


 

No. 5



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ข้อมูลตรวจสอบยาก ต้องตำหนิคนส่งข้อมุลมาค่ะไม่ได้คิดเผื่อเหลือเผื่อขาดไว้เลย
ถ้าเพียงแต่ใส่ separator อย่าง ; หรือ | เพื่อแยก field ออกมาให้ง่ายงานนี้ใช้ code ไม่กี่บรรทัด
ไม่อยากบ่น เหมือนสักแต่ว่าเขียนให้จบๆพ้นๆภาระของตัวเอง
คนมารับงานต่อซวยดิคะ เซลสมองเสื่อมเอาง่ายๆ
Date : 2010-06-17 20:05:05 By : blurEyes
 


 

No. 6



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


หุหุ ท้าทายดีออก สมองยิ่งลับยิ่งคม แต่บ่อยๆ มีด่า
Date : 2010-06-17 20:10:29 By : tungman
 


 

No. 7



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ใช่สี้พราวไม่ใช่คนใจดีนี้ ด่าก่อนแหละค่ะ ถูกผิดว่ากันอีกที
Date : 2010-06-17 20:24:13 By : blurEyes
 


 

No. 8

Guest


ผมขอตัวอย่างซัก 1 ตัวอย่างได้ไหมครับ เพราะ งง จริงๆ ครับ
Date : 2010-06-17 22:08:16 By : เด็กหัดเขียน
 


 

No. 9



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


งั้นเขียนโค้ดอ่าน textfile มาดูให้ชื่นใจหน่อยดิ๊

อ่านแบบทีละแถวนะ
Date : 2010-06-17 22:43:41 By : tungman
 


 

No. 10

Guest


Code (VB.NET)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim line As String
        Dim fInfo As New FileInfo("c:\MAEJO2.txt")
        Dim reader As StreamReader = fInfo.OpenText()

        While (InlineAssignHelper(line, reader.ReadLine())) IsNot Nothing
            Response.Write(line & "<br>")

        End While
        Console.ReadLine()

      
    End Sub


ช่วยเขียนตัวอย่างให้ผมดู ซัก ตัวอย่างด้วยครับ ทำมาหลายวันแล้วไม่ได้จริงๆ
Date : 2010-06-17 22:46:32 By : เด็กหัดเขียน
 


 

No. 11

Guest


text file ตัวอย่าง เป็น file การชำระเงินที่ธนาคารส่งมาให้ ผมต้องการแยกออกเป็นส่วน ๆ แต่พอดูชนาดความยาว และ format ไม่เหมือนกัน ผมไม่รู้จะทำยังไงแล้วครับ อยากให้ผู้รู้ช่วยหน่อยครับ ขอบคุณล่วงหน้าครับเ
Date : 2010-06-17 22:52:38 By : เด็กหัดเขียน
 


 

No. 12



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เอาตัวอย่าง text file มาซัก 20 บรรทัดซิ เอาแบบที่มันต่างกันเยอะๆ นะ

อย่าลืม bold ส่วนที่จะเก็บให้ด้วย เพราะตรงเงินนี้ถ้าไม่จับด้วย length ไม่มีทางอื่นเลย

ให้ทำด้วยมือยังเอ๋อ เพราะไม่รู้ว่าจะตัด 0 ข้างหลังไปกี่ตัว
Date : 2010-06-17 23:41:32 By : tungman
 


 

No. 13

Guest


พี่โหลดตัวอย่าง text file ที่นี่ได้เลยครับ
http://www.education.mju.ac.th/sturegis/admin/fileload/17052553.txt
Date : 2010-06-18 09:22:36 By : เด็กหัดเขียน
 


 

No. 14



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ก็อบ text file แล้ว encode เป้น utf-8

1

FileReader.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileReader.aspx.cs" Inherits="FileReader" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Read Text File</title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />        
        <asp:Button ID="ReadButton" runat="server" Text="Read" />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="file path is empty." ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
        <br />
        <br />
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </div>
    </form>
</body>
</html>

FileReader.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

public partial class FileReader : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ReadButton.Click += new EventHandler(ReadButton_Click);

        FilterExtension();
        FileUpload1.Attributes.Add("onchange", "return checkFileExtension(this);");
    }

    protected void ReadButton_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            DataTable Dt = new DataTable();
            Dt.Columns.Add(new DataColumn("RowIndex", typeof(int)));
            Dt.Columns.Add(new DataColumn("CitizenID", typeof(string)));
            Dt.Columns.Add(new DataColumn("Name", typeof(string)));
            Dt.Columns.Add(new DataColumn("Money", typeof(double)));

            Stream stream = FileUpload1.PostedFile.InputStream;

            using (StreamReader reader = new StreamReader(stream))
            {
                int rowIndex = 0;

                while (reader.Peek() >= 0)
                {
                    string citizenID = string.Empty;
                    string money = string.Empty;

                    string aLine = reader.ReadLine();
                    string[] textArray = aLine.Split(' ');

                    foreach (string aText in textArray)
                    {
                        if (VerifyCitizenID(aText) && citizenID == string.Empty)
                            citizenID = aText;

                        if (VerifyMoney(aText) && money == string.Empty)
                            money = aText.Substring(0, aText.Length - 5).Substring(26);
                    }

                    string t = string.Empty;
                    if (textArray.Length > 2)
                    {
                        char[] a = textArray[2].ToCharArray();
                        if (a.Length > 0)
                            t = (Char.IsNumber(a[0])) ? string.Empty : " " + textArray[2];
                    }

                    DataRow Dr = Dt.NewRow();
                    Dr["RowIndex"] = ++rowIndex;
                    Dr["CitizenID"] = (citizenID != string.Empty) ? citizenID : "not found";
                    Dr["Name"] = (textArray[0].Length > 34) ? textArray[0].Substring(34) + " " + textArray[1] + t: "not found";
                    Dr["Money"] = (money != string.Empty) ? double.Parse(money) : 0.0d;
                    Dt.Rows.Add(Dr);
                }
            }

            GridView1.DataSource = Dt;
            GridView1.DataBind();
        }
    }

    private bool VerifyCitizenID(string citizenID)
    {
        //ตรวจสอบว่าทุก ๆ ตัวอักษรเป็นตัวเลข
        if (citizenID.ToCharArray().All(c => char.IsNumber(c)) == false)
            return false;

        //ตรวจสอบว่าข้อมูลมีทั้งหมด 13 ตัวอักษร
        if (citizenID.Trim().Length != 13)
            return false;

        int sumValue = 0;

        for (int i = 0; i < citizenID.Length - 1; i++)
            sumValue += int.Parse(citizenID[i].ToString()) * (13 - i);

        int v = 11 - (sumValue % 11);

        return citizenID[12].ToString() == v.ToString();
    }

    private bool VerifyMoney(string moneyString)
    {
        string momeyPattern = "^[0-9]{8}[a-zA-Z]{4}[0-9]{23}";
        Regex momeyCaseRegex = new Regex(momeyPattern);
        Match momeyMatch = momeyCaseRegex.Match(moneyString);

        return (momeyMatch.Value != string.Empty) ? true : false;
    }

    private void FilterExtension()
    {
        StringBuilder javaScriptBuilder = new StringBuilder();
        javaScriptBuilder.Append(@"function checkFileExtension(elem) {
            var filePath = elem.value;

            if(filePath.indexOf('.') == -1) {
                elem.value = '';
                return false;
            }
        
            var validExtensions = new Array();
            var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
    
            validExtensions[0] = 'txt';
            //validExtensions[0] = 'jpg';
            //validExtensions[1] = 'jpeg';
            //validExtensions[2] = 'bmp';
            //validExtensions[3] = 'png';
            //validExtensions[4] = 'gif';  
            //validExtensions[5] = 'tif';  
            //validExtensions[6] = 'tiff';
            //validExtensions[7] = 'txt';
            //validExtensions[8] = 'doc';
            //validExtensions[9] = 'xls';
            //validExtensions[10] = 'pdf';
    
            for(var i = 0; i < validExtensions.length; i++) {
                if(ext == validExtensions[i]) {
                    return true;
                }
            }

            alert('The file extension ' + ext.toUpperCase() + ' is not allowed!');
            elem.value = '';

            return false;
        }");

        ClientScriptManager ClientScript = Page.ClientScript;

        if (!ClientScript.IsClientScriptBlockRegistered(this.GetType(), "FilterExtension"))
            ClientScript.RegisterClientScriptBlock(this.GetType(), "FilterExtension", javaScriptBuilder.ToString(), true);
    }
}

2
Date : 2010-06-18 09:44:20 By : tungman
 


 

No. 15



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


หูย ทำไม citizen id มัน error เกือบครึ่งละเนี่ย

function ตรวจสอบของผมใช้ได้นะ เพราะผมเอา id ตัวเองทดสอบแล้ว

ลองตรวจ foramt ของ citizen id ใน text file ดูนะว่ามันใช่หรือเปล่า




ปล. ผมเข้าใจว่า อันที่ไม่มีชื่อ เลขบัตรมันจะไม่ถูก format นะ
ปล.2 โค้ดด้านบนเป็นตัวไฟนอลแล้ว สามารถทำการแยกชื่อและนามสกุลได้แล้วนะจ๊ะ โปรดก็อบไปวางใหม่เพื่อความเท่ได้เลย [วันนี้ 10:48]
Date : 2010-06-18 09:48:17 By : tungman
 


 

No. 16



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


อ๋อ fixlength record แล้วไป นึกว่า ชื่อไม่มีจะยุบ field เข้ามา
งั้นก้อน่าจะง่ายละ ต้องโทษคนเอามาโพสให้ข้อมูลไม่ครบ
ดีนะพี่ตึ๋งใจดี หุหุ
Date : 2010-06-18 10:55:10 By : blurEyes
 


 

No. 17



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


อืม แล้วก็ไม่บอกว่าเป็น fix length -_-"

เล่นซะต้องใช้ regular expression เลย

ทำตั้งแต่เมื่อคืน เพิ่งจะเห็น data ตอนเช้า

ไม่งั้นก็ใช้ substring กับ trim ก็จบแล้ว
Date : 2010-06-18 11:03:53 By : tungman
 


 

No. 18



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


อะดิคะ แล้วรหัสบัตรประชาชน ที่ error ไม่แปลกค่ะ
ให้เดานะคะ ที่ error อะ บัตรข้าราชการ เพราะความยาวไม่เท่ากันค่ะ
ทีหลังจะเอาข้อมูลมาโพส ให้มันครบๆมั่งนะคะ
เรื่อง่ายกลายเป็นยากละนะเนี่ย
Date : 2010-06-18 12:10:04 By : blurEyes
 


 

No. 19

Guest


พี่พอจะมีแบบที่ใช้ vb เขียนไหมครับ
Date : 2010-06-18 13:11:21 By : เด็กหัดเขียน
 


 

No. 20



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ไม่ทำครับ เพราะถ้าต้องการแค่ output เอาตัวนี้ไปวางก็รันได้ครับ

เดี๋ยวจะหาว่าใจร้าย convert เป็น vb ได้ที่นี่ http://www.developerfusion.com/tools/convert/csharp-to-vb/
Date : 2010-06-18 13:12:51 By : tungman
 


 

No. 21

Guest


ดู ปราดเดียวก็รู้ว่า Fix Length - Format 80
(Format เก่าสุดๆละ)

ที่แถวยาวไม่เท่ากัน เพราะภาษาไทย มันไม่ได้นับ Character เหมือนภาษาอังกฤษเท่านั้นเอง

อย่าไปว่าคนส่งข้อมูลเลย มันอยู่ที่ชั่วโมงบินเหมือนกันนะ คนส่งข้อมูลคงไม่ฉลาดเท่าพวกพี่นี่ เลยไม่รู้ว่าต้องแจ้งอะไรบ้าง หุหุ
Date : 2010-08-10 23:24:06 By : วัยรุ่น
 


 

No. 22

Guest


สอบถามเพิ่มเติมค่ะ ลองนำ code ด้านบนไปใช้งาน แต่ติด error ตรง บรรทัดนี้ค่ะ

if (citizenID.ToCharArray().All(c => char.IsNumber(c)) == false)

มันขึ้น Error ว่า 'System.Array' does not contain definition for 'All'

รบกวนช่วยอธิบายทีนะค่ะ ติดมา 2 วันแล้วไม่รู้จะแก้ยังไงค่ะ

ขอบคุณค่ะ
Date : 2010-08-30 14:53:37 By : chabe47
 


 

No. 23



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ใข้ visual studio version ไหมครับ ???
Date : 2010-08-30 15:38:47 By : tungman
 


 

No. 24

Guest


ใช้ 2005 ค่ะ
Date : 2010-08-30 16:52:34 By : chabe47
 


 

No. 25



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ถ้า 2005 ต้องหา linq มาลงครับ

ไม่งั้นต้องวนลูปต้องสอบ char ทีละตัวเอา

หรือลง 2008 ขึ้นไปครับ
Date : 2010-08-30 16:58:32 By : tungman
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อ่านข้อมูล text file....ผมติดปัญหาเรื่องของการอ่านข้อมูล text file ซึ่งผมต้องการเก็บข้อมูลเลขที่บัตรประชาชน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่