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 > จะทำโปรเจคของ Visual Studio อ่ะค่ะ รบกวนท่านที่มีความรู้หน่อยนะค่ะ



 

จะทำโปรเจคของ Visual Studio อ่ะค่ะ รบกวนท่านที่มีความรู้หน่อยนะค่ะ

 



Topic : 118131



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



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




คือจะทำโปรเจคอ่ะค่ะ รบกวนท่านที่มีความรู้หน่อยนะค่ะ
แบบว่าจะอ่านข้อมูลจากไฟล์ Text (.txt) มาแสดงเป็น Report กราฟบน Windows Form Application ที่เป็นไฟล์ .exe ของ Visual Studio อ่ะค่ะ เคยทำแต่ PHP ที่ใช้ Highcharts (jQuery) มาแสดงบน web แล้วก็ลองใช้โปรแกรม ExeOutput for PHP ก็ค้างมากจนสั่งปริ้น PDF ไม่ได้ค่ะ ไม่รู้จะเริ่มต้นยังไงเลยค่ะ

ตัวอย่างกราฟนะค่ะ



Tag : VBScript, jQuery, CakePHP, VB.NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-07-31 14:03:24 By : Jirata View : 3400 Reply : 72
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

บน .NET ใช้ Charts Control ได้เลยครับ ง่ายสุด ๆ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-02 10:43:10 By : mr.win
 


 

No. 2



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



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


ขอบคุณค่ะ

ใช่ VB.NET Read Text File ได้แล้ว แต่เอามาเก็บใน Array ไม่ได้อ่ะคะ

8-5-2015 10-55-05

ใครพอมีความรู้ VB.NET เรื่อง Array 2D บ้างคะ และก็อีกเรื่องที่สงสัย VB.NET สามารถนำ Array ไปทำเป็นกราฟได้รึเปล่าคะ

รอกวนด้วยค่ะ...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-05 11:40:34 By : Jirata
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ลองใช้พวก List หรือ DataTable แทนล่ะครับ ลองดูตัวอย่าง List ครับ

List (VB.NET)
Imports System.Collections.Generic
' Simple business object. A PartId is used to identify the type of part  
' but the part name can change.  
Public Class Part
    Implements IEquatable(Of Part)
    Public Property PartName() As String 
        Get 
            Return m_PartName
        End Get 
        Set(value As String)
            m_PartName = Value
        End Set 
    End Property 
    Private m_PartName As String 

    Public Property PartId() As Integer 
        Get 
            Return m_PartId
        End Get 
        Set(value As Integer)
            m_PartId = Value
        End Set 
    End Property 
    Private m_PartId As Integer 

    Public Overrides Function ToString() As String 
        Return "ID: " & PartId & "   Name: " & PartName
    End Function 
    Public Overrides Function Equals(obj As Object) As Boolean 
        If obj Is Nothing Then 
            Return False 
        End If 
        Dim objAsPart As Part = TryCast(obj, Part)
        If objAsPart Is Nothing Then 
            Return False 
        Else 
            Return Equals(objAsPart)
        End If 
    End Function 
    Public Overrides Function GetHashCode() As Integer 
        Return PartId
    End Function 
    Public Overloads Function Equals(other As Part) As Boolean _
        Implements IEquatable(Of Part).Equals
        If other Is Nothing Then 
            Return False 
        End If 
        Return (Me.PartId.Equals(other.PartId))
    End Function 
    ' Should also override == and != operators. 

End Class 
Public Class Example
    Public Shared Sub Main()
        ' Create a list of parts. 
        Dim parts As New List(Of Part)()

        ' Add parts to the list.
        parts.Add(New Part() With { _
             .PartName = "crank arm", _
             .PartId = 1234 _
        })
        parts.Add(New Part() With { _
             .PartName = "chain ring", _
             .PartId = 1334 _
        })
        parts.Add(New Part() With { _
             .PartName = "regular seat", _
             .PartId = 1434 _
        })
        parts.Add(New Part() With { _
             .PartName = "banana seat", _
             .PartId = 1444 _
        })
        parts.Add(New Part() With { _
             .PartName = "cassette", _
             .PartId = 1534 _
        })
        parts.Add(New Part() With { _
             .PartName = "shift lever", _
             .PartId = 1634 _
        })



        ' Write out the parts in the list. This will call the overridden ToString method 
        ' in the Part class.
        Console.WriteLine()
        For Each aPart As Part In parts
            Console.WriteLine(aPart)
        Next 


        ' Check the list for part #1734. This calls the IEquitable.Equals method 
        ' of the Part class, which checks the PartId for equality.
        Console.WriteLine(vbLf & "Contains(""1734""): {0}", parts.Contains(New Part() With { _
             .PartId = 1734, _
             .PartName = "" _
        }))

        ' Insert a new item at position 2.
        Console.WriteLine(vbLf & "Insert(2, ""1834"")")
        parts.Insert(2, New Part() With { _
             .PartName = "brake lever", _
             .PartId = 1834 _
        })


        'Console.WriteLine(); 
        For Each aPart As Part In parts
            Console.WriteLine(aPart)
        Next

        Console.WriteLine(vbLf & "Parts[3]: {0}", parts(3))

        Console.WriteLine(vbLf & "Remove(""1534"")")

        ' This will remove part 1534 even though the PartName is different, 
        ' because the Equals method only checks PartId for equality.
        parts.Remove(New Part() With { _
             .PartId = 1534, _
             .PartName = "cogs" _
        })

        Console.WriteLine()
        For Each aPart As Part In parts
            Console.WriteLine(aPart)
        Next

        Console.WriteLine(vbLf & "RemoveAt(3)")
        ' This will remove part at index 3.
        parts.RemoveAt(3)

        Console.WriteLine()
        For Each aPart As Part In parts
            Console.WriteLine(aPart)
        Next 
    End Sub 
    ' 
    '        This example code produces the following output: 
    '        ID: 1234   Name: crank arm 
    '        ID: 1334   Name: chain ring 
    '        ID: 1434   Name: regular seat 
    '        ID: 1444   Name: banana seat 
    '        ID: 1534   Name: cassette 
    '        ID: 1634   Name: shift lever 
    ' 
    '        Contains("1734"): False 
    ' 
    '        Insert(2, "1834") 
    '        ID: 1234   Name: crank arm 
    '        ID: 1334   Name: chain ring 
    '        ID: 1834   Name: brake lever 
    '        ID: 1434   Name: regular seat 
    '        ID: 1444   Name: banana seat 
    '        ID: 1534   Name: cassette 
    '        ID: 1634   Name: shift lever 
    ' 
    '        Parts[3]: ID: 1434   Name: regular seat 
    ' 
    '        Remove("1534") 
    ' 
    '        ID: 1234   Name: crank arm 
    '        ID: 1334   Name: chain ring 
    '        ID: 1834   Name: brake lever 
    '        ID: 1434   Name: regular seat 
    '        ID: 1444   Name: banana seat 
    '        ID: 1634   Name: shift lever 
    '   ' 
    '        RemoveAt(3) 
    ' 
    '        ID: 1234   Name: crank arm 
    '        ID: 1334   Name: chain ring 
    '        ID: 1834   Name: brake lever 
    '        ID: 1444   Name: banana seat 
    '        ID: 1634   Name: shift lever 
    '         

End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-05 11:50:14 By : mr.win
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ลืมดูว่า C# นี่ง่ายเลยครับ

Code (C#)
            public class FileDetail
            {
                    public string ID { get; set; }
                    public string VALUE { get; set; }
            }


Code (C#)
                var list = new List<FileDetail>();

                for (int i = 1; i <= 10; i++)
                {
                    list.Add(new FileDetail { ID = i.ToString(),VALUE = "XYZ"; });
                }


Code (C#)
                // get 
                foreach(FileDetail item in list)
                {
                    //item.ID;
                    //item.VALUE;
                }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-05 11:54:06 By : mr.win
 


 

No. 5



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



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


หาๆ เปลี่ยนเป็น c# หรอคะ VB.NET นี่ก็ งง แล้ว T_T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-05 12:45:32 By : Jirata
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

Code (VB.NET)
Public Class FileDetail
	Public Property ID() As String
		Get
			Return m_ID
		End Get
		Set
			m_ID = Value
		End Set
	End Property
	Private m_ID As String
	Public Property VALUE() As String
		Get
			Return m_VALUE
		End Get
		Set
			m_VALUE = Value
		End Set
	End Property
	Private m_VALUE As String
End Class


Code (VB.NET)
For i As Integer = 1 To 10
	list.Add(New Part() With { _
		     .ID = i.ToString(), _
		     .VALUE = "XYZ" _
		})
Next


Code (VB.NET)
For Each item As FileDetail In list
	item.ID
	item.VALUE
Next

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-05 13:11:27 By : mr.win
 


 

No. 7



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



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


พี่ค่ะ มันจะพอทำได้จริงรึเปล่า ที่จะ อ่านไฟล์ text มาเก็บใน array แล้วนำ array มาทำเป็นกราฟ และจะใช้ภาษาอะไรที่ง่ายต่อการเขียนคะ C#, VB.NET
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 10:05:55 By : Jirata
 


 

No. 8



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ต้องดูก่อนว่ากราฟมันรับค่าแบบไหน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 10:20:23 By : mr.win
 


 

No. 9

Guest


ลองทำให้ดูครับ ถูกผิดอย่าว่ากันนะครับผม ท่านอื่นเสริมได้นะครับ
และขอโทษด้วยนะครับที่เป็น C# เนื่องจากไม่ได้เขียน VB.NET นาน สนิมขึ้นแล้วครับผม
ผมลองมั่วๆข้อมูลขึ้นมาเองตามที่เห็นนะครับ
BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
24/06/15 00:30:00;22.38;22.32;22.25;167;165;174
24/06/15 01:30:00;22.37;22.45;22.22;166;162;171
24/06/15 02:30:00;22.28;22.50;22.21;161;164;173
24/06/15 03:30:00;22.18;22.56;22.24;162;162;172
24/06/15 04:30:00;22.08;22.53;22.26;165;168;171
24/06/15 05:30:00;22.34;22.51;22.20;168;163;175
24/06/15 06:30:00;22.35;22.54;22.22;162;163;176
24/06/15 07:40:00;22.33;22.58;22.21;169;164;172

ถ้าทำได้แล้วเรื่องกราฟก็ไม่มีปัญหาครับผม

Code (C#)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
           
            string[] lines = System.IO.File.ReadAllLines(@"D:\logTest.txt");
            // Display the file contents by using a foreach loop.
            System.Console.WriteLine("Contents of WriteLines2.txt = ");
            int lineNum = 0;
            logmaster logM = new logmaster();
            logM._logdetail = new List<logdetail>();
            foreach (string line in lines)
            {
                lineNum++;
                if (lineNum == 1)
                {
                    logM.title_a = line;
  // Use a tab to indent each line of the file.
                    Console.WriteLine("\t" + logM.title_a);
                }
                if (lineNum == 2)
                {
                    logM.title_b = line;
                    Console.WriteLine("\t" + logM.title_b);
                }
                if (lineNum == 3)
                {
                    logM.title_c = line;
                    Console.WriteLine("\t" + logM.title_c);
                }
                if (lineNum > 4)
                {
                    string str;
                    string[] strArray;
                    str = line;

                    strArray = str.Split(';');
                    logdetail currentLog = new logdetail();
                    currentLog.Date_Time = strArray[0];
                    currentLog.KV_AB = strArray[1];
                    currentLog.kV_BC = strArray[2];
                    currentLog.kV_CA = strArray[3];
                    logM._logdetail.Add(currentLog);   
                }
              
              
            }
            Console.WriteLine("\n");
            foreach(var l in logM._logdetail)
            {
                Console.WriteLine("\tDate Time = {0};KV_AB={1};kV_BC={2}", l.Date_Time,l.KV_AB,l.kV_BC);
            }           
            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
    public class logmaster
    {
        public string title_a { get; set; }
        public string title_b { get; set; }
        public string title_c { get; set; }
        public List<logdetail> _logdetail { get; set; }
    }
    public class logdetail
    {
        //Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
        public string Date_Time { get; set; }
        public string KV_AB { get; set; }
        public string kV_BC { get; set; }
        public string kV_CA { get; set; }
        public string IA { get; set; }
        public string IB { get; set; }
        public string IC { get; set; }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 11:28:19 By : บัญดิษฐ
 


 

No. 10



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



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


อ่อคืออยากจะใช้ Report Application โชว์กราฟนะ แต่ งง ตรงที่รับค่าของกราฟ เพราะว่าค่าที่จะโชว์ข้อมูลของกราฟจะมาจากไฟล์ text แต่ในโปรแกรมให้ข้อมูลตามรูปอะคะ เลยไม่รู้จะทำไง

2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 11:38:40 By : Jirata
 


 

No. 11



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



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


โทษนะค่ะ คุณGuest ลองเอาไปวางแล้วมี Error อ่ะ


3
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 14:46:59 By : Jirata
 


 

No. 12

Guest


ขอโทษครับ แนะนำไปไม่หมด
คือ report ก่อนจะออกแบบมันจำเป็นจะต้องมี Data Set หรือ Object หรือไม่ก็มีฐานข้อมูลว่างั้น
แต่ที่นี้เราไม่มี เราจึงจำเป็นจะต้องสร้างเพื่อให้มันเอามาใช้ออกแบบ ลากๆวางๆ (มันมีแบบขั้นเทพอยู่ คือพวกนี้เขียนสด ไม่แนะนำ)
ผมก็เลยสร้าง class มาให้ดูครับว่าจะเอาข้อมูลจาก Text มาเก็บได้อย่างไรและจะใช้ต่ออย่างไง
จึงทำตัวอย่างให้ดูเลย ตามนี้นะครับ

ถ้าต้องการ code ทั้งหมดเลย ก็โหลดตามนี้นะครับ
https://onedrive.live.com/redir?resid=5428FFE448EF4FF3!522&authkey=!ADyNDUH6KUwhX9M&ithint=file%2c7z

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApplication2
{
    public class logmaster
    {
        public string title_a { get; set; }
        public string title_b { get; set; }
        public string title_c { get; set; }
        public List<logdetail> _logdetail { get; set; }
        public logmaster()
        {

        }
        public  static logmaster getLogmaster()
        {
            string[] lines = System.IO.File.ReadAllLines(@"D:\logTest.txt");        
            int lineNum = 0;
            logmaster logM = new logmaster();
            logM._logdetail = new List<logdetail>();
            foreach (string line in lines)
            {
                lineNum++;
                if (lineNum == 1)
                {
                    logM.title_a = line;
                    Console.WriteLine("\t" + logM.title_a);
                }
                if (lineNum == 2)
                {
                    logM.title_b = line;
                    Console.WriteLine("\t" + logM.title_b);
                }
                if (lineNum == 3)
                {
                    logM.title_c = line;
                    Console.WriteLine("\t" + logM.title_c);
                }
                if (lineNum > 4)
                {
                    string str;
                    string[] strArray;
                    str = line;

                    strArray = str.Split(';');
                    logdetail currentLog = new logdetail();
                    currentLog.Date_Time = strArray[0];
                    currentLog.KV_AB = double.Parse(strArray[1]);
                    currentLog.kV_BC = double.Parse(strArray[2]);
                    currentLog.kV_CA = double.Parse(strArray[3]);
                    currentLog.IA = double.Parse(strArray[4]);
                    currentLog.IB = double.Parse(strArray[5]);
                    currentLog.IC = double.Parse(strArray[6]); 
                    logM._logdetail.Add(currentLog);
                }             
            }
            return logM;
        }
    }
    public class logdetail
    {
        //Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
        public string Date_Time { get; set; }
        public double KV_AB { get; set; }
        public double kV_BC { get; set; }
        public double kV_CA { get; set; }
        public double IA { get; set; }
        public double IB { get; set; }
        public double IC { get; set; }
    }
}



Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.logmasterBindingSource.DataSource = logmaster.getLogmaster();
            this.reportViewer1.RefreshReport();
        }
    }
}



c1

c2

c3

c5
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 14:54:43 By : บัญดิษฐ
 


 

No. 13



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



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


อ่อๆ ขอบคุณมากเลยนะค่ะ ที่ช่วยแนะนำและทำให้ดูนะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 15:48:52 By : Jirata
 


 

No. 14



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



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


code โหลดไม่ได้อ่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 15:54:09 By : Jirata
 


 

No. 15



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



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


โหลดได้แล้วนะคะ ขอบคุณมากๆค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 09:44:46 By : Jirata
 


 

No. 16



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



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


พี่ Guest คะ อธิบายให้หน่อย ค่ะ
แก้ไปแก้มา เข้าไม่ได้เลย Error The Logarithm Base must be equal or greater than 2.0 Parameter name: value
ไม่เข้าใจ ตรง title_a, title_b, title_c ที่อยู่ในเงื่อนไข if (lineNum == 1,2,3,) และก็ if (lineNum > 4) อ่ะ ไม่รู้ทำไมไปโชว์ในกราฟแค่ 4 ค่า ไม่มาเหมือนในตารางเลย
และก็จะทำหน้า Report ให้มี 2 หัวข้อยังไงอ่ะ หน้า Graph Curve กับ หน้า Databaes Table ละหน้ากราฟ มี 5 กราฟ A4แนวนอน อ่ะคะ แต่หน้าตาราง แนวตั้ง อันเดียว รบกวนหน่อยนะค่ะ

222
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 13:56:09 By : Jirata
 


 

No. 17

Guest


ฮาฮาฮา ผมก็นึกว่าผ่านไปด้วยดีแล้ว พอเปิดมาดูเราตอบนี้หว่า เอางั้นต่ออีกหน่อย
ที่ if lineNum 123 และ 4 นั้น มันไม่มีอะไรหรอกครับ แค่จะทำให้เห็นว่าเรากำลังอ่าน
แถวที่เท่าไร ทีแรกว่าจะข้ามไปอ่านแถวที่ 5 เลยก็ได้(แถวใน Text file)
เช่น

lineNum[1] = BANPUE
lineNum[2] = Load Report -22kv Outgoing No.3
lineNum[3] = Load Report -22kv Outgoing No.3
lineNum[4] = Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
lineNum[] > 4 ก็คือแถวที่ 5...


Text file ผมทำตัวอย่างตามที่เห็นครับ
BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
24/06/15 00:30:00;22.38;22.32;22.25;167;165;174
24/06/15 01:30:00;22.37;22.45;22.22;166;162;171
24/06/15 02:30:00;22.28;22.50;22.21;161;164;173
24/06/15 03:30:00;22.18;22.56;22.24;162;162;172
24/06/15 04:30:00;22.08;22.53;22.26;165;168;171
24/06/15 05:30:00;22.34;22.51;22.20;168;163;175
24/06/15 06:30:00;22.35;22.54;22.22;162;163;176
24/06/15 07:40:00;22.33;22.58;22.21;169;164;172

ส่วนที่ว่าอ่านแล้วไม่ได้นี้ไม่รู้เป็นเพราะอะไร เพราะไปลบ 4 แถวทิ้งหรือเพิ่มอันนี้ก็มีส่วนครับ ถ้าอย่างไงลองตัดส่วน Text file บางส่วน
เอามาให้ดูก็ได้ครับ ส่วนเรื่องการออกแบบ Report (ไม่ได้ออกตัวนะ ผมก็ศึกษามาได้ไม่มากหนักเกี่ยวกับการใช้ Report Viewer ครับผม)
เพราะส่วนมากจะใช้แต่ Crystal report หรือไม่ลองหาหนังสือเกี่ยวกับ Report Viewer มาอ่านดูครับ หรือทำตามท่าน Admin ที่สอน
อยู่ในเว็บบอร์ดนี้ก็ได้ครับ ผมก็มาศึกษาอยู่เป็นประจำ
https://www.thaicreate.com/dotnet/reportviewer-parameter.html


และก็ผมชื่อ บัญดิษฐ ครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 16:03:36 By : บัญดิษฐ
 


 

No. 18



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



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


หวัดดีค่ะ พี่ บัญดิษฐ ตอนนี่ทำหาย Error แล้ว
แต่ก็ติดเหมือนเดิมค่ะ งานนี้อีกนานเลย

11-17-15 16-22-30.png

+++++++++++++++++++++++++++++++++++

11-17-15 16-27-04.png
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 16:46:20 By : Jirata
 


 

No. 19

Guest


ลองดูตาม Code นี้นะครับ

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApplication2
{
    public class logmaster
    {
        public string title_a { get; set; }
        public string title_b { get; set; }
        public string title_c { get; set; }
        public List<logdetail> _logdetail { get; set; }
        public logmaster()
        {

        }
        public  static logmaster getLogmaster()
        {
            string[] lines = System.IO.File.ReadAllLines(@"D:\logTest.txt");        
            int lineNum = 0;
            logmaster logM = new logmaster();
            logM._logdetail = new List<logdetail>();
            foreach (string line in lines)
            {
                lineNum++;
                if (lineNum == 1)
                {
                    logM.title_a = line;
                    Console.WriteLine("\t" + logM.title_a);
                }
                if (lineNum == 2)
                {
                    logM.title_b = line;
                    Console.WriteLine("\t" + logM.title_b);
                }
                if (lineNum == 3)
                {
                    logM.title_c = line;
                    Console.WriteLine("\t" + logM.title_c);
                }
                if (lineNum > 4)
                {
                    string str;
                    string[] strArray;
                    str = line;

                    strArray = str.Split(';');
                    logdetail currentLog = new logdetail();
                    currentLog.Date_Time = strArray[0];
                    currentLog.KV_AB = double.Parse(strArray[1]);
                    currentLog.kV_BC = double.Parse(strArray[2]);
                    currentLog.kV_CA = double.Parse(strArray[3]);
                    currentLog.IA = double.Parse(strArray[4]);
                    currentLog.IB = double.Parse(strArray[5]);
                    currentLog.IC = strArray[6].IsNumeric();//เขียน Extensions เพิ่มขึ้นมาว่าตรวจว่าเป็นตัวเลขหรือไหม
                    logM._logdetail.Add(currentLog);
                }             
            }
            return logM;
        }
    }
    public class logdetail
    {
        //Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
        public string Date_Time { get; set; }
        public double KV_AB { get; set; }
        public double kV_BC { get; set; }
        public double kV_CA { get; set; }
        public double IA { get; set; }
        public double IB { get; set; }
        public double IC { get; set; }
    }
    //เพิ่ม Extensions อย่าถามนะครับผมว่ามันคืออะไร 555+++ หางอึ่งเหมือนกัน เอาเป็นว่าเอาไว้ใช้งานให้ชีวิตมันง่านก็พอ
    public static class Extensions
    {
        public static double IsNumeric(this string s)
        {
            foreach (char c in s)
            {
                if (!char.IsDigit(c) && c != '.')
                {
                    return 0;
                }
            }
            double result = double.Parse(s);
            return result;
        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 17:05:55 By : บัญดิษฐ
 


 

No. 20

Guest


ลืมบอกว่าสามารถใช้ได้กับทุกตัวนะครับ อันนั้นแค่ตัวอย่าง

BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB;IC
24/06/15 00:30:00;22.38;22.32;22.25;167;165;174
24/06/15 01:30:00;22.37;22.45;22.22;--;162;171
24/06/15 02:30:00;22.28;22.50;--;161;164;173
24/06/15 03:30:00;22.18;22.56;22.24;162;162;172
24/06/15 04:30:00;22.08;--;22.26;165;168;171
24/06/15 05:30:00;22.34;22.51;22.20;168;163;--
24/06/15 06:30:00;22.35;22.54;22.22;162;163;--
24/06/15 07:40:00;22.33;22.58;--;169;164;172


currentLog.Date_Time = strArray[0];//KV(AB)//Date Time
currentLog.KV_AB = strArray[1].IsNumeric();//KV(AB)
currentLog.kV_BC = strArray[2].IsNumeric();//kV(BC)
currentLog.kV_CA =strArray[3].IsNumeric();//kV(CA)
currentLog.IA = strArray[4].IsNumeric();//IA
currentLog.IB = strArray[5].IsNumeric();//IB
currentLog.IC = strArray[6].IsNumeric();//เขียน Extensions เพิ่มขึ้นมาว่าตรวจว่าเป็นตัวเลขหรือไหม IC
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 17:11:53 By : บัญดิษฐ
 


 

No. 21



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 21:39:21 By : mr.win
 


 

No. 22



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



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


พี่บัญดิษฐ แล้วถ้า IC ไม่มีละ

BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB
24/06/15 00:30:00;22.38;22.32;22.25;167;165
24/06/15 01:30:00;22.37;22.45;22.22;--;162
24/06/15 02:30:00;22.28;22.50;--;161;164
24/06/15 03:30:00;22.18;22.56;22.24;162;162
24/06/15 04:30:00;22.08;--;22.26;165;168
24/06/15 05:30:00;22.34;22.51;22.20;168;163
24/06/15 06:30:00;22.35;22.54;22.22;162;163
24/06/15 07:40:00;22.33;22.58;--;169;164

จะเขียนเงื่อนไขยังไง เพราะ CODE จะ Error จะป้องกันยังไงค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-17 21:50:14 By : Jirata
 


 

No. 23

Guest


Code (C#)
currentLog.Date_Time = strArray[0];//KV(AB)//Date Time
currentLog.KV_AB = strArray[1].IsNumeric();//KV(AB)
currentLog.kV_BC = strArray[2].IsNumeric();//kV(BC)
currentLog.kV_CA =strArray[3].IsNumeric();//kV(CA)
currentLog.IA = strArray[4].IsNumeric();//IA
currentLog.IB = strArray[5].IsNumeric();//IB
//currentLog.IC = strArray[6].IsNumeric();//เขียน Extensions เพิ่มขึ้นมาว่าตรวจว่าเป็นตัวเลขหรือไหม IC


กรณีที่ไม่มี IC เราก็แค่ใส่ // หน้า currentLog.IC = strArray[6].IsNumeric();คือไม่ต้องอ่านเพราะจำนวน index จะลดลงเหลือแค่ 6
หรือไม่ก็ currentLog.IC =0; ไปเลย

หลักการทำงานของโปรแกรมตัวอย่างคือ
อ่านแถวของ Text file
ได้แถวมาแล้ว เก็บเข้าตัวแปล จากนั้นก็ตัดคำ (;)
string str;//ประกาศตัวตัวหนังสือเพื่อรับค่าจากแถว
string[] strArray;//ประกาษตัวแปลอาเรย์เพื่อรับค่าจากการตัดคำ ไม่ต้องกำหนดขนาดหรือมิติ
str = line; //รับค่าจากแถว xxx
strArray = str.Split(';');//strArray ตัวแปลอาเรย์รับค่าจากการตัดคำหรือแยกตามเครื่องหมาย (;) อันนี้แล้วแต่อาจจะมี , |

ก็จะได้ Array ตามจำนวน (;) index จะเริ่มจาก 0 เสมอ
ในนี้มี IC ก็จะเหลือจำนวนสมาชิกใน array แค่ 6 ก็จะได้ strArray[0] -> strArray[5]

ประมาณนี้ครับ ถ้าอธิบายไม่ถูกอย่างไงก็อย่าว่ากันนะครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-18 08:28:32 By : บัญดิษฐ
 


 

No. 24



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



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


พี่บัญดิษฐค่ะ


BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB
24/06/15 00:30:00;22.38;22.32;22.25;167;165
24/06/15 01:30:00;22.37;22.45;22.22;--;162
...
.

ถ้าเอา Date Time;KV(AB);kV(BC);kV(CA);IA;IB
เช็คได้ไหมค่ะ ขับว่า if (lineNum == 4) ว่ามีArrayกี่ตัว แล้วไปกำหนดที่ if (lineNum > 4) ว่าที่กี่Arrayได้หรือเปล่าค่ะ
if (lineNum == 4)
{
string name;
string[] nameArray;
name = line;
nameArray = name.Split(';');
for (int i = 0; i < nameArray.Length; i++)
{
Console.WriteLine("Array Index[{0}] = {1}", i, nameArray[i]);
}
Console.WriteLine("Array Length : {0}", nameArray.Length.ToString());
Console.ReadLine();
}
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-18 10:12:05 By : Jirata
 


 

No. 25

Guest


ได้ครับ ว่าแต่ไม่ขอบอกได้ไหม มาถึงขั้นนี้แล้วคิดว่าน่าจะทำได้แล้วครับ อีกนิดเดียวเอง
เพราะมันไม่มีอะไรมากจริงๆ ครับ เช่น string[] strLine = line.Split(';');
strline.Length คิดว่าจะได้อะไรล่ะ มันก็จำนวนสมาชิกใน Array ก็เท่านั้นครับ

จากนั้นแล้วแต่เราจะไปให้งานอย่างไง ลองทำดูก่อนนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-18 14:05:12 By : บัญดิษฐ
 


 

No. 26



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



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


เด่วนะ พี่บัญดิษฐ ทำให้คิดอะไรมากขึ้นเลย...


18-11-2558 22-34-41.png

ปัญหา 2 ก็ตามเลย

18-11-2558 22-43-24.png
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-18 22:50:42 By : Jirata
 


 

No. 27



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



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



ปัญหา 2 ได้แล้ว

เพิ่ม CODE

this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
this.reportViewer1.RefreshReport();

ที่ reportViewer1_Load (หน้าForm1) ใช่ป่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-18 23:31:06 By : Jirata
 


 

No. 28

Guest


ใน DataSet จะไม่ถูกเพิ่มเข้ามา ถ้าต้องการเพิ่มเราก็ไปเพิ่มใน Class แล้วค่อยมากด Refresh หน้าออกแบบ report ครับ
จากนั้นแล้วแต่เราว่าจะอ่านมาเก็บจาก Index ที่เท่าไร บางครั้งไม่จำเป็นต้องมี Report เดียวก็ได้นะครับ กรณีที่ Text File นั้น
รูปแบบไม่คงที่ จะทำให้เกิด Error เสียเปล่ากรณีที่เราเผลอไปอ่าน index ที่ไม่มีจริง อันนี้ก็แล้วแต่นะเพราะมันไม่ใช่ทางออก
ที่ดี แต่สำหรับมือใหม่ก็ทำอย่างนี้ไปก่อนก็ได้ครับ

logdetails
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-19 09:42:43 By : บัญดิษฐ
 


 

No. 29



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



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


แล้วจะแก้ไงอ่ะ วิธีที่ดี ที่ไม่ทำให้เกิด Error ตึบเลย ***เราว่าจะอ่านมาเก็บจาก Index ที่เท่าไร คือ ?

พี่บัญดิษฐค่ะ พอค่า เป็น ลบ ก็ออก 0 เฉยเลยอ่ะ
BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB
24/06/15 00:30:00;22.38;22.32;22.25;167;165
24/06/15 01:30:00;22.37;22.45;22.22;--;-162
...
.

public static class Extensions
{
public static double IsNumeric(this string s)
{
foreach (char c in s)
{
if (!char.IsDigit(c) && c != '.')
{
return 0;
}
}
double result = double.Parse(s);
return result;
}
}
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-19 21:27:18 By : Jirata
 


 

No. 30

Guest


แก้ไขโค้ดตามนี้ครับ

Code (C#)
 public static class Extensions
    {
        public static double IsNumeric(this string s)
        {
            double n;
            bool isNumeric = double.TryParse(s, out n);
            if(isNumeric)
            {
                return n;
            }
          
            return 0;
        }
    }


vvvvvvvv
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 08:25:29 By : บัญดิษฐ
 


 

No. 31

Guest


ตอบความคิดเห็นที่ : 29 เขียนโดย : Jirata เมื่อวันที่ 2015-11-19 21:27:18
รายละเอียดของการตอบ ::
อย่างที่แนะนำไปว่า ถ้า Text File ไม่ใช่มาตรฐานเดี่ยวคือแถวที่ 4 นั้น มีเพิ่มหรือลดขนาด
อย่างเช่น
Date Time;KV(AB);kV(BC);kV(CA);IA;IB = index ก็เท่ากับ [0,1,2,3,4,5]
แต่บอกมี THB เพิ่ม และต้องการอ่านด้วย
Date Time;KV(AB);kV(BC);kV(CA);IA;IB:THB = index ก็เท่ากับ [0,1,2,3,4,5,6]
และอีกวันไม่แล้ว ไม่มี THB และ IA IB แต่เพิ่ม IC แทน
Date Time;KV(AB);kV(BC);kV(CA);IC = index ก็เท่ากับ [0,1,2,3,4]

เห็นไหมจำนวนสมาชิกลดลง index ก็เปลี่ยนตาม แล้วโปรแกรมจะทำอย่างไงละ ?

อย่างนี้เราต้องเขียนเพิ่มหรือแยก module และ report ก็ต้องมากว่าหนึ่งหรือแยกแต่ละแบบ
หรือไม่ก็ต้องเขียนกราฟเอง เพราะถ้าทำรายงานเป็นแบบการออกแบบไว้ก่อนแล้วแค่แสดงข้อมูลอาจจะไม่ตรงโยชน์
เพราะข้อมูลมีหลายรูปแบบ คงเห็นภาพนะ
การเขียนโปรแกรมแบบวิธีที่ดีนั้น ไม่มีครับ มีแต่ใครคิด Algorithm ได้ดีกว่ากันเท่านั้นครับ
เพราะอาจเป็นที่ไม่ได้เรียนสายนี้โดยตรง ถ้าตอบผิดท่านอื่นสามารถเสริมและช่วยแก้ไขให้ถูกด้วยนะครับผม ขอบคุณครับ

ปล.
โปรแกรมไม่จำเป็นต้องมีหน้าเดียวแล้วreport ก็เหมือนกัน ให้ผู้ใช้เลือกว่าจะดูแบบไหนก็ดีเหมือนกัน




แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 10:02:40 By : บัญดิษฐ
 


 

No. 32



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



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


พี่บัญดิษฐค่ะ ทำไม add Dataset 2 ไป แล้วทำไมนำมาใช่ไม่ได้อ่ะ ขึ้น <<Expr>> จะนำ ตัวหนังสือบรรทัดที่ 1 กับ 2 มาใช่นะ


BANPUE
Load Report -22kv Outgoing No.3
Daily
Date Time;KV(AB);kV(BC);kV(CA);IA;IB
24/06/15 00:30:00;22.38;22.32;22.25;167;165
24/06/15 01:30:00;22.37;22.45;22.22;--;-162
...
.

11-26-15 09-05-48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-26 09:16:49 By : Jirata
 


 

No. 33



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



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


พี่บัญดิษฐค่ะ ทำมาถึงนี้แล้วก็ยังไม่ได้ แล้วตารางก็มี 0 ออกมา 2 บรรทัด

11-26-15 14-10-26



Code (C#)
namespace DailyReport
{
    public class logmaster
    {
        //public string Station_name { get; set; }
        //public string Bay_name { get; set; }
        public string title_c { get; set; }
        public string strLine { get; set; }
        public List<logdetail> _logdetail { get; set; }
        
        public  static logmaster getLogmaster()
        {
            string[] lines = System.IO.File.ReadAllLines(@"D:\logTest.txt");        
            int lineNum = 0;
            logmaster logM = new logmaster();
            logM._logdetail = new List<logdetail>();
            foreach (string line in lines)
            {
                lineNum++;
                if (lineNum == 1)
                {
                    //logM.Station_name = line;
                    //Console.WriteLine("\t" + logM.Station_name);
                    string[] StaArray;
                    StaArray = line.Split('\t');
                    logdetail Sta_name = new logdetail();
                    Sta_name.Station_name = StaArray[0];
                    logM._logdetail.Add(Sta_name);
                   
                }
                if (lineNum == 2)
                {
                    //logM.Bay_name = line;
                    //Console.WriteLine("\t" + logM.Bay_name);
                    string[] BayArray;
                    BayArray = line.Split('\t');
                    logdetail Ba_name = new logdetail();
                    Ba_name.Bay_name = BayArray[0];
                    logM._logdetail.Add(Ba_name);

                }
                if (lineNum == 3)
                {
                    logM.title_c = line;
                    Console.WriteLine("\t" + logM.title_c);
                }
                if (lineNum == 4)
                {
                    //string line;
                    string[] strLine = line.Split(';');
                    for (int i = 0; i < strLine.Length; i++)
                    {
                        Console.WriteLine("Array Index[{0}] = {1}", i, strLine[i]);
                    }
                    Console.WriteLine("Array Length : {0}", strLine.Length.ToString());
                    Console.ReadLine();
                }
                if (lineNum > 4)
                {
                    string str;
                    string[] strArray;
                    str = line;

                    strArray = str.Split(';');
                    logdetail currentLog = new logdetail();
                    currentLog.Date_Time = strArray[0];
                    currentLog.kVab = strArray[1].IsNumeric();
                    currentLog.kVbc = strArray[2].IsNumeric();
                    currentLog.kVca = strArray[3].IsNumeric();
                    currentLog.Ia = strArray[4].IsNumeric();
                    currentLog.Ib = strArray[5].IsNumeric();
                    currentLog.Ic = strArray[6].IsNumeric();
                    currentLog.MW = strArray[7].IsNumeric();
                    currentLog.MVar = strArray[8].IsNumeric();
                    currentLog.PF = strArray[9].IsNumeric();
                    currentLog.THDiB = strArray[10].IsNumeric();
                    currentLog.THDvB = strArray[11].IsNumeric();
                    logM._logdetail.Add(currentLog);

                }             
            }
            return logM;
        }
    }
    public class logdetail
    {
        public string Date_Time { get; set; }
        public double kVab { get; set; }
        public double kVbc { get; set; }
        public double kVca { get; set; }
        public double Ia { get; set; }
        public double Ib { get; set; }
        public double Ic { get; set; }
        public double MW { get; set; }
        public double MVar { get; set; }
        public double PF { get; set; }
        public double THDiB { get; set; }
        public double THDvB { get; set; }
        public string Station_name { get; set; }
        public string Bay_name { get; set; }
    }
    public static class Extensions
    {
        public static double IsNumeric(this string s)
        {
            double n;
            bool isNumeric = double.TryParse(s, out n);
            if (isNumeric)
            {
                return n;
            }

            return 0;
        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-26 14:14:44 By : Jirata
 


 

No. 34

Guest


ลองดูข้อมูล TextFile บรรทัดก่อนวันที่ 24/06/15 ดูนะครับว่า ข้อมูลถูกต้องหรือเปล่า หรือว่าเป็นบัญหาที่ Report (ขนาดของ Report)
ลองตรวจดูก่อนนะครับผม ส่วนที่ว่า 2 DataSet ทำได้หรือยังครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-26 15:21:45 By : บัญดิษฐ
 


 

No. 35



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



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


ไม่ใช่ค่ะ ที่ข้อมูล TextFile บรรทัดก่อนวันที่ 24/06/15 ไม่มี แต่มันน่าจะเป็นเพราะ ทำ DataSet1 พอโปรแกรมอ่าน ก็เข้า if (lineNum == 1) และ if (lineNum == 2) พอมาถึง
if (isNumeric)
{
return n;
}
return 0;
พอมันไม่มีค่าก็เลย ให้เท่ากับ 0 อ่ะคะ แต่ไม่รู้จะแก้ยังไงเลย

11-27-15 08-50-51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-27 09:23:20 By : Jirata
 


 

No. 36

Guest


ถ้าเป็นไปได้ ขอ Text File ได้ไหมครับ ไม่ต้องเอามาทั้งหมดนะครับ เอาแค่ 100 row ก็พอครับ
[email protected]
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-27 09:36:56 By : บัญดิษฐ
 


 

No. 37



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



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


ชื่อ logTest.txt ค่ะ

BANPUE
Load Report - 22 kV Outgoing No.3
Daily
DATE TIME;kV(AB);kV(BC);kV(CA);IA;IB;IC;MW;Mvar;%PF;%THDi(B);
24/06/15 00:30:00;22.38;22.58;22.25;167;165;174;6.26;1.72;96.39;1.1;
24/06/15 01:00:00;22.48;22.68;22.35;157;156;165;5.94;1.59;96.52;1.1;
24/06/15 01:30:00;22.43;22.61;22.28;149;148;157;5.64;1.46;96.77;0.1;
24/06/15 02:00:00;22.52;22.68;22.35;144;142;151;5.46;1.40;-96.81;0.0;
24/06/15 02:30:00;22.56;22.75;22.41;145;143;152;5.49;1.47;96.56;0.1;
24/06/15 03:00:00;22.60;22.78;22.48;141;139;148;5.34;1.45;96.47;0.1;
24/06/15 03:30:00;22.66;22.85;22.52;138;136;145;5.24;1.44;96.37;0.1;
24/06/15 04:00:00;22.71;22.90;22.56;135;134;--;5.15;1.46;96.19;0.5;
24/06/15 04:30:00;22.63;22.82;22.48;133;131;140;5.04;1.41;96.26;0.0;
24/06/15 05:00:00;22.56;22.75;22.41;130;128;137;4.93;1.38;96.29;0.0;
24/06/15 05:30:00;22.52;22.73;22.38;130;128;136;4.88;1.39;96.09;0.1;
24/06/15 06:00:00;22.40;22.58;22.24;136;133;141;5.03;1.53;95.60;0.1;
24/06/15 06:30:00;22.29;22.48;22.14;147;145;153;5.40;1.77;94.99;0.0;
24/06/15 07:00:00;22.36;22.58;22.26;145;144;149;5.35;1.68;95.36;0.1;
24/06/15 07:30:00;22.48;22.66;22.42;138;137;142;5.15;1.49;95.97;1.3;
24/06/15 08:00:00;22.49;22.65;22.43;137;137;142;5.12;1.58;-95.56;1.7;
24/06/15 08:30:00;22.52;22.66;22.45;132;133;137;4.94;1.60;95.07;2.0;
24/06/15 09:00:00;22.46;22.64;22.41;127;127;132;4.71;1.59;94.73;1.8;
24/06/15 09:30:00;22.26;22.36;22.20;140;140;145;5.11;1.80;94.25;1.7;
24/06/15 10:00:00;22.49;22.61;22.43;153;154;158;5.63;2.09;93.72;1.8;
24/06/15 10:30:00;22.66;22.80;22.62;154;155;159;5.70;2.14;93.57;1.6;
24/06/15 11:00:00;22.62;22.74;22.56;157;158;162;5.78;2.20;93.42;2.2;
24/06/15 11:30:00;22.56;22.68;22.52;160;162;166;5.91;2.24;93.48;2.5;
24/06/15 12:00:00;22.58;22.67;22.49;160;160;165;5.87;2.20;93.59;2.5;
24/06/15 12:30:00;22.59;22.69;22.52;156;157;161;5.74;2.15;93.57;2.5;
24/06/15 13:00:00;22.73;22.81;22.64;150;151;157;5.57;2.10;93.57;2.9;
24/06/15 13:30:00;22.65;22.75;22.56;142;143;147;5.30;1.78;94.72;3.2;
24/06/15 14:00:00;22.64;22.74;22.58;139;142;145;5.24;1.77;94.71;3.1;
24/06/15 14:30:00;22.54;22.58;22.45;146;148;153;5.47;1.86;94.66;2.9;
24/06/15 15:00:00;22.46;22.56;22.40;150;152;158;5.61;1.92;94.55;2.8;
24/06/15 15:30:00;22.41;22.52;22.37;151;152;158;5.60;1.89;94.67;3.0;
24/06/15 16:00:00;22.42;22.55;22.38;150;151;156;5.58;1.85;94.91;2.9;
24/06/15 16:30:00;22.46;22.56;22.42;151;152;157;5.62;1.87;94.83;2.7;
24/06/15 17:00:00;22.52;22.63;22.46;149;150;155;5.55;1.90;94.61;2.8;
24/06/15 17:30:00;22.62;22.76;22.60;148;151;153;5.55;1.93;94.38;2.9;
24/06/15 18:00:00;22.66;22.81;22.62;142;144;146;5.32;1.85;94.42;3.0;
24/06/15 18:30:00;22.47;22.61;22.44;136;137;140;5.07;1.64;95.08;2.6;
24/06/15 19:00:00;22.42;22.58;22.40;143;144;147;5.28;1.79;94.65;2.9;
24/06/15 19:30:00;22.31;22.49;22.27;152;152;157;5.53;2.02;93.92;2.3;
24/06/15 20:00:00;22.23;22.42;22.16;175;174;181;6.23;2.62;92.16;1.6;
24/06/15 20:30:00;22.40;22.61;22.27;204;200;211;7.16;3.34;90.61;1.7;
24/06/15 21:00:00;22.41;22.64;22.29;208;204;216;7.36;3.32;91.13;1.8;
24/06/15 21:30:00;22.55;22.75;22.43;217;215;226;7.83;3.37;91.84;2.0;
24/06/15 22:00:00;22.68;22.87;22.57;215;214;224;7.89;3.15;92.84;2.3;
24/06/15 22:30:00;22.69;22.88;22.58;209;208;218;7.76;2.82;93.97;2.5;
24/06/15 23:00:00;22.50;22.69;22.38;199;201;210;7.48;2.40;95.17;2.0;
24/06/15 23:30:00;22.48;22.65;22.38;190;190;199;7.14;2.17;95.62;1.8;
25/06/15 00:00:00;22.58;22.77;22.47;181;181;191;6.85;2.05;95.77;1.4;
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-27 09:43:00 By : Jirata
 


 

No. 38

Guest


ทำให้แล้วครับ ลองโหลดไปดูนะครับ
https://onedrive.live.com/redir?resid=5428FFE448EF4FF3!528&authkey=!AKTw0GESspUjIZg&ithint=file%2czip

ไม่ได้เปลี่ยนแปลงโค้ดอะไร ข้อมูลถูกต้องอยู่แล้วครับ ติดแค่ขนาดในรายงานเท่านั้นครับ
ไม่ต้องเอาไปทับของเดิมแค่ลองดูโค้ดและวิธีทำ Report ก็พอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-27 14:10:50 By : บัญดิษฐ
 


 

No. 39



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



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


ขอบคุณค่ะ พี่บัญดิษฐ

พอจะมีตัวอย่าง C# Read File .ini มั้ยค่ะ
พอดีทำตาม ลิ้ง แล้วไม่เข้าใจอ่ะ

https://www.thaicreate.com/dotnet/forum/086975.html
https://www.thaicreate.com/dotnet/forum/102803.html

จะเอามาแปลงเอามาใส่
templog.cs*
string[] lines = System.IO.File.ReadAllLines(@"D:\logTest.txt");
เลยไม่รู้ว่าจะเอาไปใส่ที่หน้าไหน ?
เพราะของนู๋ มันมี หน้า
Form1.cs
Program.cs
Form1.Desigcs
templog.cs*

12-24-15 10-49-54.png
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-24 10:59:18 By : Jirata
 


 

No. 40



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

สร้าง class clsINI.cs แล้วก๊อบไปใส่ได้เลยครับ

Code (C#)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace TORServices
{
    public static class clsINI
    {
        [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        private static extern int GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, global::System.Text.StringBuilder lpReturnedString, int nSize, string lpFileName);
        [DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        private static extern int WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName);
        public static string ReadValue(string Path, string section, string key)
        {
            global::System.Text.StringBuilder sb = new global::System.Text.StringBuilder(255);
            dynamic i = GetPrivateProfileString(section, key, "", sb, 255, Path);
            return sb.ToString();
        }
        public static void WriteValue(string Path, string section, string key, string value) { WritePrivateProfileString(section, key, value, Path); }
            public static string textFileReader(string pathFileName)
   {
     string line;
     StreamReader fs;
     try 
     {
        fs = new StreamReader(pathFileName);
        line = fs.ReadToEnd();

        /* อ่าน Encode จาก String ที่อ่านมาได้จาก text file */ 
        Encoding encodeSource = Encoding.GetEncoding(fs.CurrentEncoding.CodePage);
        fs.Close();

        //* ............ */
        Encoding systemEncode = Encoding.Default; 
        Encoding targetEncode = encodeSource;

        /* สั่ง getbyte array จาก string ที่เราอ่านมา */
        byte[] srcData = systemEncode.GetBytes( line );
        byte[] dstData;

        /* ถ้าเป้น Encode ต่างกัน windows และ text file ให้ Convert byte array ไปเป็น text file encode */
        if( targetEncode != systemEncode )
          dstData = Encoding.Convert( systemEncode, targetEncode, srcData );
        else 
          dstData = srcData;

        /* convert bytearray ไปเป็น string ด้วย text file encode */
        return  targetEncode.GetString(dstData);

     }
     catch(Exception ex)
     {
        throw new IOException("cannot find " + pathFileName,ex);
     }

   }
        public static System.Collections.Generic.List<string> textFileReaderFormline(string pathFileName)
        {

            System.Collections.Generic.List<string> list = new System.Collections.Generic.List<string>();
            System.IO.StreamReader fs;
            fs = new System.IO.StreamReader(pathFileName, System.Text.Encoding.GetEncoding(874));

            string line;
            while ((line = fs.ReadLine()) != null)
            {
                list.Add(line);
            }
            return list;

        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-25 08:15:00 By : lamaka.tor
 


 

No. 41

Guest


ว่าจะไม่ทำให้แล้วแต่ก็นะ ไหนๆก็ไหนๆแล้ว เลยทำให้ดูอีกครั้งแล้วกัน

23234

1 กดแล้วหาไฟล์แล้วแสดงรายงานเลย
2 กดแล้วค้นหาไฟล์ .ini จากนั้นส่ง path ไปให้อีก even เพื่อจะ list รายการ Text File
3 เลือกรายการที่ต้องการแสดงรายงาน
4 กดเพื่อแสดงรายงาน

5566 ตามนั้น




หรือไม่ก็ Load เอาไปดูโค้ดเลยก็แล้วกัน
https://onedrive.live.com/redir?resid=5428FFE448EF4FF3!529&authkey=!APyKhdqIONSduyU&ithint=file%2czip
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-25 13:47:12 By : บัญดิษฐ
 


 

No. 42



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



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


ขอบคุณค่ะ พี่บัญดิษฐ และคุณTOR_CHEMISTRY

ของพี่บัญดิษฐ มีให้เลือกเยอะ แต่ก็ งง เหมือนกัน เด่วจะลองเอาไปดัดแปลงดูนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-27 21:59:28 By : Jirata
 


 

No. 43



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



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


พี่ๆ ช่วยหน่อยค่ะ

ติดปัญหาอีกละ ทำไม เขียน code แบบนี้ แล้วมันไปหาไฟล์ไม่เจออ่ะ

string path = Application.StartupPath + @"D:\SIPC.ini";

27-12-2558 23-56-58
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-28 00:03:24 By : Jirata
 


 

No. 44



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

string path = Application.StartupPath + @"D:\SIPC.ini";

เป็น

string path = Application.StartupPath + @"\SIPC.ini";
หรือ
string path = @"D:\SIPC.ini";

เลือกเอาซักอย่างหนึ่งครับ

ไม่งั้นมันจะเป็นประมาณแบบนี้

"G:\TestCSharp\MIDI_System\FileMng\bin\DebugD:\SIPC.ini"
//Application.StartupPath = G:\TestCSharp\MIDI_System\FileMng\bin\Debug

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-28 08:08:45 By : lamaka.tor
 


 

No. 45



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



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


ได้แล้วๆๆๆๆ ขอบคุณค่ะ คุณTOR_CHEMISTRY หาวิธีตั้งนานเลย เล่นไปตี3กว่า

28-12-2558 14-13-25

Code (C#)
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using Microsoft.Win32;
using System.Windows.Forms;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.IO;
using Ini;

namespace DailyReport
{

    public class logmaster
    {
        public string Station_name { get; set; }
        public string Bay_name { get; set; }
        public string graph_name { get; set; }
        public List<logdetail> _logdetail { get; set; }

        String path = @"C:\SIPC\SIPC.INI";

        public static logmaster getLogmaster()
        {

            IniFile ini = new IniFile(path);   // ติดตรงนี้ค่ะ line 32 
            string PatInstalac = ini.IniReadValue("Paths", "PatInstalac").ToString();
            string Instalacion = ini.IniReadValue("Parametros Activos", "Instalacion").ToString();

            DateTime newdate = DateTime.Today;
            string resultdate = newdate.ToString("yyyyMMdd");

            string SumText = (PatInstalac + @"\" + Instalacion + @"\LOAD\DAILY\" + resultdate + @".TXT");

            FileInfo fi = new FileInfo(SumText);
            if (fi.Exists)
            {         
                string[] lines = System.IO.File.ReadAllLines(SumText);
                int lineNum = 0;
                logmaster logM = new logmaster();
                logM._logdetail = new List<logdetail>();
                foreach (string line in lines)
                {
                    lineNum++;
                    if (lineNum == 1)
                    {
                        logM.Station_name = line;
                        Console.WriteLine("\t" + logM.Station_name);
                    }
                    if (lineNum == 2)
                    {
                        logM.Bay_name = line;
                        Console.WriteLine("\t" + logM.Bay_name);
                    }
                    if (lineNum == 3)
                    {
                        logM.graph_name = line;
                        Console.WriteLine("\t" + logM.graph_name);
                    }
                    if (lineNum > 4)
                    {
                        string str;
                        string[] strArray;
                        str = line;

                        strArray = str.Split(';');
                        logdetail currentLog = new logdetail();
                        currentLog.Date_Time = strArray[0];
                        currentLog.Vab = strArray[1].IsNumeric();
                        currentLog.Vbc = strArray[2].IsNumeric();
                        currentLog.Vca = strArray[3].IsNumeric();
                        currentLog.Ia = strArray[4].IsNumeric();
                        currentLog.Ib = strArray[5].IsNumeric();
                        currentLog.Ic = strArray[6].IsNumeric();
                        currentLog.MW = strArray[7].IsNumeric();
                        currentLog.MVar = strArray[8].IsNumeric();
                        currentLog.PF = strArray[9].IsNumeric();
                        currentLog.THDiB = strArray[10].IsNumeric();
                        currentLog.THDvB = strArray[11].IsNumeric();
                        logM._logdetail.Add(currentLog);

                    }
                }
                return logM;
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("No such file " + SumText);
                //this.Close();
            }
        }

    }
    public class logdetail
    {
        public string Date_Time { get; set; }
        public double Vab { get; set; }
        public double Vbc { get; set; }
        public double Vca { get; set; }
        public double Ia { get; set; }
        public double Ib { get; set; }
        public double Ic { get; set; }
        public double MW { get; set; }
        public double MVar { get; set; }
        public double PF { get; set; }
        public double THDiB { get; set; }
        public double THDvB { get; set; }

    }
    public static class Extensions
    {
        public static double IsNumeric(this string s)
        {
            double n;
            bool isNumeric = double.TryParse(s, out n);
            if (isNumeric)
            {
                return n;
            }
            return 0;
        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-28 14:23:56 By : Jirata
 


 

No. 46



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

String path = @"C:\SIPC\SIPC.INI";
public static logmaster getLogmaster()


เมื่อเราเรียกใช้งานแบบ static ทุกอย่าง(รึป่าวหว่า) ที่ method นั้นๆ อ้างถึงต้องเป็น static เช่นกันครับ

public static String path = @"C:\SIPC\SIPC.INI";

เรียบร้อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-28 14:43:51 By : lamaka.tor
 


 

No. 47



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



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


ไม่ได้ค่ะ กายเป็น Error บรรทัดที่ 29 แทน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-28 15:05:19 By : Jirata
 


 

No. 48



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

public class logmaster

public static logmaster getLogmaster()

มันขัดแย้งกันอยู่ในตัวครับ

ลองย้อนกลับไปดูว่า
ที่จริงแล้วต้องการสร้าง class แบบ public หรือ public static ค่อยโยงลงมาที่ method ใน class อีกที
จะดีกว่าไม๊ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-28 15:53:28 By : lamaka.tor
 


 

No. 49



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



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


ไม่มี Error แล้วค่ะ แต่ไม่มีอะไรออกมากเลย ไม่รู้เข้าใจถูกรึเปล่าค่ะ

ในความคิดตอนนี้ พอ run โปรแกรมจะทำ Form2 ก่อนแล้วค่อยส่งค่าที่อยู่ข้อมูลไปให้ Form1 เพื่อทำกราฟ แต่ถ้า Form2 เข้า loop else จะจบโปรแกรม แล้วไม่ไป run Form1 ใช่รึเปล่าค่ะ งงเลย ตอนนี้ ??????

29-12-2558 1-47-38
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-29 02:02:53 By : Jirata
 


 

No. 50



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



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


ทำได้แล้วค่ะ ลืมไปดูที่ Run(new Form2());
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-29 10:29:06 By : Jirata
 


 

No. 51



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



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


พี่ค่ะ ช่วยด้วยๆ งง ตรงข้ามหน้าอ่ะ
คือ หน้า templog.cs

Code (C#)
if (lineNum == 4)
 {                 
string[] strLine = line.Split(';');                    
 for (int i = 0; i < strLine.Length; i++)
 {
Console.WriteLine("", i, strLine[i]);                       
}
//MessageBox.Show(strLine.Length.ToString());   
DailyReport.Form1.logReport.selectReport = strLine.Length.ToString();
 }


จะให้ส่งไปหน้า Form1.Designer.cs

Code (C#)
public static class logReport
        {
            public static string selectReport = string.Empty;           
        }

private void InitializeComponent()
{
      if (selectReport == "12")
      {
          this.reportViewer1.LocalReport.ReportEmbeddedResource = "DailyReport.Report2.rdlc";
      }
      else
      {
           this.reportViewer1.LocalReport.ReportEmbeddedResource = "DailyReport.Report1.rdlc";
      }    
}
#endregion
public string selectReport { get; set; }


คือมันออกแต่ else อ่ะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-04 10:16:13 By : Jirata
 


 

No. 52



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



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


ลืมบอกไปค่ะ ว่าทำได้แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-04 20:21:02 By : Jirata
 


 

No. 53



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



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


พี่บัญดิษฐ & lamaka.tor ช่วยด้วยค่ะ
ถ้าเป็นข้อมูลอย่างนี่จะ loop ยังไงดีค่ะ ข้อมูลอยู่ใน textfile มีประมาณ 60000+ /3เดือน เลยไม่รู้จะเก็บข้อมูลยังไงดีค่ะ ใจก็ว่าจะเก็บใน MySQL แต่ก็กลัวมีอะไรที่ดีกว่าหรือง่ายกว่า ท่านใดรู้บ้างคะ

*05/09/15 21:01:08.280 115kV SMC Line4 AUTO RECLOSE LOCK OUT (MAIN1) LOCKOUT
05/09/15 21:00:58.237 115kV SMC Line4 DISTANCE PHASE N (MAIN 1) TRIP
05/09/15 21:00:58.237 115kV SMC Line4 DISTANCE PHASE B (MAIN 1) TRIP
05/09/15 21:00:58.237 115kV SMC Line4 DISTANCE ZONE 2 (MAIN 1) TRIP
05/09/15 21:00:58.258 115kV SMC Line4 DISTANCE PHASE N (MAIN 1) NORMAL
05/09/15 21:00:58.258 115kV SMC Line4 DISTANCE PHASE B (MAIN 1) NORMAL
05/09/15 21:00:58.258 115kV SMC Line4 DISTANCE ZONE 2 (MAIN 1) NORMAL
*05/09/15 21:01:55 115kV SMC Line4 VOLTAGE C-A UND
*05/09/15 21:01:55 115kV SMC Line4 VOLTAGE B-C UND
*05/09/15 21:01:55 115kV SMC Line4 VOLTAGE A-B UND

https://onedrive.live.com/redir?resid=B53AD5381DE710E7!219&authkey=!AFRvCBxCQUSpL5Y&ithint=file%2cTXT
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-19 09:19:53 By : Jirata
 


 

No. 54



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

สมมติ

*05/09/15 21:01:08.280 115kV SMC Line4 AUTO RECLOSE LOCK OUT (MAIN1) LOCKOUT

แบบนี้จะต้องแยกให้ได้กี่ชุดรึครับ

แยกออกมาเป็น
*05/09/15 21:01:08.280
115kV SMC Line4
AUTO RECLOSE LOCK OUT (MAIN1)
LOCKOUT

แบบนี้รึป่าว

*** ถ้าข้อมูลเยอะ ๆ ลองศึกษาเกี่ยวกับ Regular Expression
https://www.thaicreate.com/community/regex-regular-expression-dotnet.html
http://regexhero.net/tester/

จะช่วยลดการทำงานลงได้เยอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-19 11:05:19 By : lamaka.tor
 


 

No. 55



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



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


*05/09/15 21:01:08.280 115kV SMC Line4 AUTO RECLOSE LOCK OUT (MAIN1) LOCKOUT
*05/09/15 21:01:55 115kV SMC Line4 VOLTAGE C-A UND
อ่อป่าวค่ะ จะแยกเป็น
EDATE=>05/09/15 21:01:08
ETIME=>280
ENAME=>115kV SMC Line4
EDES=>AUTO RECLOSE LOCK OUT (MAIN1)
ESTATUS=>LOCKOUT
EOTHER=>
และ
EDATE=>05/09/15 21:01:55
ETIME=>
ENAME=>115kV SMC Line4
EDES=>VOLTAGE C-A
ESTATUS=>
EOTHER=>UND

อะค่ะ ข้อมูลจะเป็นประมาณนี้อ่ะคะ

19-1-2559 18-56-46
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-19 18:59:36 By : Jirata
 


 

No. 56



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

Code (C#)
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string filetxt = @"C:\EVENTOS_2.TXT";
        string strRegex = @"(?:([0-9][0-9]/[0-9][0-9]/[0-9][0-9]\s[0-9][0-9]:[0-9][0-9]:[0-9][0-9])[\s|\.]([\s|0-9]{3})\s{1,}(115kV SMC Line\d)\s{2,}(.*?)\s{5,}(\w+))";
        private void Form1_Load(object sender, EventArgs e)
        {
            System.Text.RegularExpressions.Regex RgxLines = new System.Text.RegularExpressions.Regex(strRegex);

            foreach (System.Text.RegularExpressions.Match match in RgxLines.Matches(System.IO.File.ReadAllText(filetxt)))
                {
                    if (match.Groups[2].Value.Trim().Length > 0)
                    {
                        dataGridView1.Rows.Add(match.Groups[1].Value, match.Groups[2].Value, match.Groups[3].Value, match.Groups[4].Value, match.Groups[5].Value, "");
                    }
                    else
                    {
                        dataGridView1.Rows.Add(match.Groups[1].Value, match.Groups[2].Value, match.Groups[3].Value, match.Groups[4].Value,"", match.Groups[5].Value);
                    }
                }
            
        }

        
    }


นี่ที่ได้จาก http://regexhero.net/tester/
ครับ
rgx1

เมื่อเราโค้ดมาลงใน C# ก็ออกมาเป็นแบบนี้

rgx2

****ต้องขอโทษด้วยครับที่ใช้ regex ตอนนี้ผมหัดใช้ regex อยู่ทุกอย่างที่ผมทำจึงต้องให้เป็น regex
แต่มันก็ง่ายดีนะครับ

อธิบาย
@"(?:([0-9][0-9]/[0-9][0-9]/[0-9][0-9]\s[0-9][0-9]:[0-9][0-9]:[0-9][0-9])[\s|\.]([\s|0-9]{3})\s{1,}(115kV SMC Line\d)\s{2,}(.*?)\s{5,}(\w+))"

จะจัดกลุ่มให้ได้ 1 กลุ่มตามรูปแบบนี้โดยชข้างในจะมี 5 กลุ่ม
*05/09/15 20:58:41.910 115kV SMC Line4 AUTO RECLOSE LOCK OUT (MAIN1) LOCKOUT
*05/09/15 20:59:09 115kV SMC Line1 VOLTAGE C-A UND

กลุ่ม 1 ([0-9][0-9]/[0-9][0-9]/[0-9][0-9]\s[0-9][0-9]:[0-9][0-9]:[0-9][0-9]) => 05/09/15 20:58:41/05/09/15 20:59:09
กลุ่ม 2 ([\s|0-9]{3}) => ช่องว่าง/910
กลุ่ม 3 (115kV SMC Line\d) => 115kV SMC Line ตามด้วย จำนวนเต็ม **ไม่ชอบเปลี่ยนได้ครับ
กลุ่ม 4 ([A-Z0-9\s{1})(]+) => AUTO RECLOSE LOCK OUT (MAIN1)/VOLTAGE C-A
กลุ่ม 5 (\w+) => LOCKOUT/UND

ความจริงต้องให้ได้ 6 กลุ่มเพราะ LOCKOUTและ UND อยู่คนละกลุ่ม
แต่ผมแก้โดย

dataGridView1.Rows.Add(match.Groups[1].Value, match.Groups[2].Value, match.Groups[3].Value, match.Groups[4].Value, match.Groups[5].Value, "");
}
else
{
dataGridView1.Rows.Add(match.Groups[1].Value, match.Groups[2].Value, match.Groups[3].Value, match.Groups[4].Value,"", match.Groups[5].Value);

วิธีบ้านๆของผมก็มีแค่นี้ครับ
ส่วนอยากแก้ไขตรงไหนก็ลองๆแก้ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 10:57:07 By : lamaka.tor
 


 

No. 57

Guest


555 ขอยอมแพ้คุณ TOR เลยงานนี้ เพราะผมยังไม่เข้าใจ การใช้งาน regex เลย
แบบว่าถ้าถามตอนนี้ว่าเข้าใจระดับไหนแล้ว ก็คงต้องตอบว่า 0 ครับ
อย่างไงก็ขอบคุณมากเลยครับ ที่อธิบายอย่างละเอียด "สังคมต้องการคนแบบนี้"
เดียวจะลองเอาไปใช้ดูบาง ส่วนมากผมจะ Split เอา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 11:13:25 By : บัญดิษฐ
 


 

No. 58



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 57 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2016-01-20 11:13:25
รายละเอียดของการตอบ ::

ผมลองเอาไป spilt(' ') แล้ว จะเละครับ

ต้องขอบคุณ one2up.net ครับที่ทำให้ผมโหลดไฟล์ได้เยอะๆครับ
https://www.thaicreate.com/community/load-one2up-ban-ban.html
ที่ผมศึกษา regex เพราะจะเอา link กะ filename ในเว็บนี้ไปส่งให้ IDM นี่แหละครับ 5555


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 11:27:09 By : lamaka.tor
 


 

No. 59



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



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



หาาาาพี่บัญดิษฐ ยังไม่เข้าใจ แล้วจะเข้าใจด้วยรึเปล่านะ T_T แต่ก็จะพยายามนะ ขอบคุณพี่ๆมากที่ช่วยแนะนำ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 22:45:32 By : Jirata
 


 

No. 60



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



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


พี่ค่ะ ไม่เข้าใจเลยค่ะ

\s{1,} => เว้นวรรค 1 ทีหรอค่ะ
(115kV SMC Line\d) => \d จะเปลี่ยนแต่ตัวเลขแต่มันมีหลายชื่ออ่ะ
115kV SMC BUSTIE1
115kV SMC BUSTIE2
CPM
SMC COMMON
115kV SMC Line1-8
Communication PROCOME

\s{2,} => เว้นวรรค 2 ทีหรอค่ะ
(.*?) => คืออะไรหรอค่ะ
\s{5,} => เว้นวรรค ถ ทีหรอค่ะ
(\w+) => คืออะไรหรอค่ะ

มันไม่เห็นออกเหมือนพี่เลยค่ะ เป็นเพราะกลุ่มที่ 3 รึเปล่า
01-25-16 08-53-01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-26 08:14:40 By : Jirata
 


 

No. 61



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex%28v=vs.110%29.aspx
http://www.webub.com/PHP_Regular_Expressions_Regular_Expression-69-10.html
http://www.ninenik.com/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99_character_classes_%E0%B9%83%E0%B8%99_Regular_Expressions_%E0%B8%82%E0%B8%AD%E0%B8%87_PHP-396.html
http://www.thaimisc.com/r/view.php?id=402&category=16

แปลกแต่จริงที่ regex C# ภาษาไทยมีน้อยมากๆๆ ส่วนใหญ่ไปกองกันอยู่ใน PHP,JAVA กัน

แต่ผมก็มีทางออกมาให้อีกแล้วครับ(เปลี่ยนไปเรือยๆจนกว่าจะหาทางกลับมาจุดเริ่มต้นไม่เจอ 5555)

มาคราวนี้ใช้วิธีนับแบบบ้านๆ ครับ
รูปแบบคือ
*05/09/15 20:58:41.910 115kV SMC Line4 AUTO RECLOSE LOCK OUT (MAIN1) LOCKOUT
1(*)/17(05/09/15 20:58:41)/1(.)/4(910 )/21(115kV SMC Line4 )/41(AUTO RECLOSE LOCK OUT (MAIN1) )/16(LOCKOUT )/3( )
1+17+1+4+21+41+16+3 = 104 พอดีเป๊ะๆครับ

Code (C#)
 public partial class Form1 : Form
    {

        DataGridView dataGridView1 = new DataGridView() {Dock = System.Windows.Forms.DockStyle.Fill,Name = "dataGridView1" };
        DataGridViewTextBoxColumn Column1 = new DataGridViewTextBoxColumn() { HeaderText = "Line", Name = "Column1", Width = 200 };
        DataGridViewTextBoxColumn Column2 = new DataGridViewTextBoxColumn() { HeaderText = "EDATE", Name = "Column2" };
        DataGridViewTextBoxColumn Column3 = new DataGridViewTextBoxColumn() { HeaderText = "ETIME", Name = "Column3" };
        DataGridViewTextBoxColumn Column4 = new DataGridViewTextBoxColumn() { HeaderText = "ENAME", Name = "Column4" };
        DataGridViewTextBoxColumn Column5 = new DataGridViewTextBoxColumn() { HeaderText = "EDES", Name = "Column5" };
        DataGridViewTextBoxColumn Column6 = new DataGridViewTextBoxColumn() { HeaderText = "ESTATUS", Name = "Column6" };
        DataGridViewTextBoxColumn Column7 = new DataGridViewTextBoxColumn() { HeaderText = "EOTHER", Name = "Column7" };
        public Form1()
        {
            InitializeComponent();
            this.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {Column1,Column2,Column3,Column4,Column5,Column6,Column7});
            this.Controls.Add(this.dataGridView1);
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
            this.ResumeLayout(false);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (string line in System.IO.File.ReadAllLines(@"C:\EVENTOS_2.TXT"))
            {
                if (line.Length >= 104) 
                    dataGridView1.Rows.Add(line, 
                        line.Substring(1, 17).Trim(),
                        line.Substring(19, 4).Trim(),
                        line.Substring(23, 21).Trim(),
                        line.Substring(44, 41).Trim(),
                        line.Substring(85, 16).Trim(),
                        line.Substring(101, 3).Trim());
            }

        }
    }


1111

แต่ว่าช้ามากเลย
เอาเป็นว่าถ้าผมหา regex ที่เร็วกว่านี้จะเอามานำเน๋อใหม่นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-26 10:41:18 By : lamaka.tor
 


 

No. 62



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ตัด

if (line.Length >= 104)

ออกก็ได้ครับ
ไม่ต่างกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-26 11:13:54 By : lamaka.tor
 


 

No. 63



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



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


พี่ค่ะ จะอัพขึ้น mySQL ยังไงดีค่ะ
ที filetext มีจำนวน 37 บรรทัด และจะเพิ่มขึ้นเรื่อยๆ
ที่ mySQL มีจำนวนแค่ 3 บรรทัดของ filetext ตามรูปค่ะ ไม่รู้จะเขียนเงื่อนไข ยังไงค่ะ ให้ไปอ่าน ทุกๆ 1s.

01-28-16 13-49-44
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Generation Time: Jan 28, 2016 at 02:25 PM
-- Server version: 5.0.51
-- PHP Version: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- Database: `cscs`
-- 

-- --------------------------------------------------------

-- 
-- Table structure for table `eventos`
-- 

CREATE TABLE `eventos` (
  `ID` int(15) NOT NULL auto_increment,
  `EDATE` datetime NOT NULL,
  `ETIME` varchar(3) NOT NULL default '000',
  `ENAME` varchar(20) NOT NULL,
  `EDES` varchar(40) NOT NULL,
  `ESTATUS` varchar(15) NOT NULL,
  `EOTHER` varchar(3) NOT NULL,
  KEY `ID` (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

-- 
-- Dumping data for table `eventos`
-- 

INSERT INTO `eventos` VALUES (1, '2015-10-28 13:53:12', '000', '115kV SMC Line1', '01YB-01 STATUS', 'CLOSE BYPASS', '');
INSERT INTO `eventos` VALUES (2, '2015-10-28 13:53:12', '226', '115kV SMC Line1', '01YB-01 CLOSE BYPASS COMMAND', 'FROM CSCS', '');
INSERT INTO `eventos` VALUES (3, '2015-10-28 13:53:39', '000', '115kV SMC Line2', '02YB-01 STATUS', 'CLOSE BYPASS', '');


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-28 14:30:31 By : Jirata
 


 

No. 64



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

เป็นผมนี่ for loop Insert แบบบ้านๆ แบบบ้านๆเลยครับ

เพราะตัว filetext เอง ก็สามารถเอามาทำเป็น list ได้อยู่แล้ว

แต่ถ้า 1s นี่อย่างเร็วเลยนะครับ
ถ้าเจอจังหวะเครื่องไหนอืดๆนี่ถือว่างานเข้าเลยก็ว่าได้

ลองโยนให้ thread จัดการครับ
thread แรก ทำงานไป thread ที่ 2 ก็ทำงานต่อได้

แต่ database จะไม่เรียงกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-28 15:16:42 By : lamaka.tor
 


 

No. 65

Guest


ว่าแต่ Data ขนาดนี้ ตัว Mysql จะรับไว้เหรอครับผม ไม่ลองดูวิธีอื่นดูก่อนลองคิดดูนะว่าแต่ละวันข้อมูลทั้งหมดกี่บรรทัดใน Text File
มันก็เท่ากับเรา Insert records เท่ากับจำนวนนั้น ไม่อย่างนั้นจะทำให้ทำงานช้าไปอีกนะ ไม่ลองศึกษาพวก NoSQL
ดูครับ มันน่าจะสนับสนุนทางนี้มากกว่านะครับผม
รอท่านอื่นด้วยนะครับ อาจจะมีบางท่านที่ใช้ mysql ที่ทำงานหนักๆอย่างนี้ก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-28 16:03:53 By : บัญดิษฐ
 


 

No. 66



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



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


พี่ค่ะ ช่วยด้วยค่ะ ติดปัญหาอ่ะ เอา bb ออกมาใช้ไม่ได้
มันข้ามลูป if ไม่ได้


Code (C#)
                string[] lines = System.IO.File.ReadAllLines(SumIniFile);
                int lineNum = 0;
                foreach (string line in lines)
                {
                    lineNum++;
                    if (lineNum == 1)
                    {
                        
                        string[] aa = line.Split(' ');
                        int bb = Int32.Parse(aa[7]);
                        System.Windows.Forms.MessageBox.Show(" " + bb, "OK ");
                    }
                    if(lineNum == bb)
                    {
                            if (line.Length >= AlaEnd)
                            dataGridView1.Rows.Add(
                                line.Substring(1, 17).Trim(),
                                line.Substring(19, 3).Trim(),
                                line.Substring(Name, CENAME).Trim(),
                                line.Substring(Des, CDes).Trim(),
                                line.Substring(Sta, CSta).Trim(),
                                line.Substring(Ala, 3).Trim());
                       
                    }
                }


01-29-16 21-51-49


ประวัติการแก้ไข
2016-01-29 21:59:06
2016-01-29 22:00:04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-29 21:38:36 By : Jirata
 


 

No. 67

Guest


อ่านจาก #NO0 - #NO66


ขำดี และยกตัวอย่าง่ายฯ (Algorithm)

37 มันเข้ามันออกมันเข้ามันออก



คำอธิบายง่ายฯ มันเข้ามันออกมันออกมันเข้า

--- จะรู้ได้อย่างไรว่ามันออกไปวันไหน (ที่คุณต้องการ) ?
------- ก็ดูวันเข้า

--- จะรู้ได้อย่างไรว่ามันเข้าวันไหน(ที่คุณต้องการ) ?
------- ก็ดูวันออก


ตายห่าเลย Algorithm การคิดของ วิศวะ/เคมี/etc...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-29 22:34:24 By : หน้าฮี
 


 

No. 68



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

string str = lines[lines.Leangh-1];
ใช่ที่ต้องการป่าวครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-29 22:45:44 By : lamaka.tor
 


 

No. 69



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



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


พี่ค่ะ ถ้าจะ run โปรแกรมแล้ว ตั้งเวลาให้วิ่งอ่าน ซ้ำๆเหมือนเดิมยังไงค่ะ


ประวัติการแก้ไข
2016-01-30 11:58:21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-29 23:14:16 By : Jirata
 


 

No. 70



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ผมไม่แน่ใจว่าเข้าใจถูกไม๊นะครับ

ถ้าหาก database จากตอนแรก มี 37 แถว พออีกซัก 1 นาที มันก็จะเพิ่มขึ้น
สมมติให้เพิ่มเป็น 500 ละกัน

แบบนั้นเราสามารถเก็บรายชื่อไฟล์ กับ log ล่าสุดไว้ใช้งานได้ครับประมาณว่า

void Refresh(string file,Int Lastlog)
{
ร่ายยาวไปครับ

เสร็จแล้วก็ Insert file Lastlog ตัวใหม่(500)
}

แบบนี้เราก็เก็บได้เรื่อยๆแล้วครับ

แต่ถ้าเป็นคนละไฟล์ แนะนำให้ ใช้ thread หรืออะไรที่ทำงานเบื้องหลัง

ส่วนเบื้องหน้าก็มีหน้าที่ อ่าน แล้ว เอามาประมวลผลก็จะเร็วขึ้นครับ
อย่างอาจจะเขียนเป็น consoleApp หรือ winServices ก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-30 16:12:37 By : lamaka.tor
 


 

No. 71



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



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


ค่ะ กำลังทำอยู่พอดีค่ะ ใช้ win Services แต่ก็ติด ติด ไม่รู้ว่า ติดที่ไหน T_T !!! เพราะทำตาม youtube ไป

https://www.youtube.com/watch?v=EwTYYPRcWj0

งง ตรงจะเอาcode ไปใส่ ไม่รู้จะใส่หน้าไหน ?
พอเพิ่ม System.Windows.Forms.Application.Run(); เข้าไป ก็เก็บDB ได้ แต่กลับ stop ไม่ได้ ไป Uninstall ออก ก็ไม่ออก ต้องไปลบที่ regedit แทน

พี่ lamaka.tor แนะนำด้วยค่ะ
ProjectInstaller.cs
Service1.cs

Code (C#) Service1.cs
  public Service1()
        {
            //timer1.Interval = 1000;
            //timer1.Start();
            InitializeComponent();
            //System.Windows.Forms.Application.Run();
        }

        public void OnDebug()
        {
            OnStart(null);
        }

        protected override void OnStart(string[] args)
        {
            timer1.Interval = 1000;
            timer1.Start();
            
            //System.Diagnostics.Process.Start(@"C:\SIPC\EJEC\MASTER.EXE");
            System.Windows.Forms.Application.Run();

            string sFile = @"C:\SIPC\EJEC\OnOffService.TXT";
            string sDate = DateTime.Now.ToString();

            System.IO.StreamWriter oFile = new System.IO.StreamWriter(sFile, true);
            oFile.WriteLine("On " + sDate + "\n");
            oFile.Close();
            //Process notePad = new Process();
            //notePad.StartInfo.FileName   = "notepad.exe";
            ////notePad.StartInfo.Arguments = "ProcessStart.cs";
            //notePad.Start();
            ////System.Windows.Forms.MessageBox.Show("Start : OK", "KK ");
            //System.Diagnostics.Process.Start(@"C:\SIPC\EJEC\MASTER.EXE");
            ////this.Stop();
        }


2-2-2559 0-23-56


ประวัติการแก้ไข
2016-02-01 21:05:06
2016-02-02 00:33:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-02-01 21:01:40 By : Jirata
 


 

No. 72



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



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


พี่ค่ะ ช่วยด้วยคะ
เพื่อ กดขั้นตอนที่ 2 แล้ว จะให้ form1 โหลดใหม่โดยเอา ค่าจาก form2 ไป Query แล้วไปให้ form1 โดยที่ไม่ new Form1().ShowDialog();

17-02-2016 13-46-50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-02-17 14:55:42 By : Jirata
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะทำโปรเจคของ Visual Studio อ่ะค่ะ รบกวนท่านที่มีความรู้หน่อยนะค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่