Commit 55f095ebfdf6510dda5d210e85ac67e3b342e728
1 parent
ab21979a
Exists in
master
read foxpro write file .csv
Showing
31 changed files
with
907 additions
and
0 deletions
Show diff stats
... | ... | @@ -0,0 +1,22 @@ |
1 | + | |
2 | +Microsoft Visual Studio Solution File, Format Version 12.00 | |
3 | +# Visual Studio Express 2013 for Windows Desktop | |
4 | +VisualStudioVersion = 12.0.31101.0 | |
5 | +MinimumVisualStudioVersion = 10.0.40219.1 | |
6 | +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FoxPro", "FoxPro\FoxPro.csproj", "{55A727FB-C833-43F5-A5DF-29EA7FF725EF}" | |
7 | +EndProject | |
8 | +Global | |
9 | + GlobalSection(SolutionConfigurationPlatforms) = preSolution | |
10 | + Debug|Any CPU = Debug|Any CPU | |
11 | + Release|Any CPU = Release|Any CPU | |
12 | + EndGlobalSection | |
13 | + GlobalSection(ProjectConfigurationPlatforms) = postSolution | |
14 | + {55A727FB-C833-43F5-A5DF-29EA7FF725EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |
15 | + {55A727FB-C833-43F5-A5DF-29EA7FF725EF}.Debug|Any CPU.Build.0 = Debug|Any CPU | |
16 | + {55A727FB-C833-43F5-A5DF-29EA7FF725EF}.Release|Any CPU.ActiveCfg = Release|Any CPU | |
17 | + {55A727FB-C833-43F5-A5DF-29EA7FF725EF}.Release|Any CPU.Build.0 = Release|Any CPU | |
18 | + EndGlobalSection | |
19 | + GlobalSection(SolutionProperties) = preSolution | |
20 | + HideSolutionNode = FALSE | |
21 | + EndGlobalSection | |
22 | +EndGlobal | ... | ... |
No preview for this file type
... | ... | @@ -0,0 +1,164 @@ |
1 | +namespace FoxPro | |
2 | +{ | |
3 | + partial class Form1 | |
4 | + { | |
5 | + /// <summary> | |
6 | + /// Required designer variable. | |
7 | + /// </summary> | |
8 | + private System.ComponentModel.IContainer components = null; | |
9 | + | |
10 | + /// <summary> | |
11 | + /// Clean up any resources being used. | |
12 | + /// </summary> | |
13 | + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | |
14 | + protected override void Dispose(bool disposing) | |
15 | + { | |
16 | + if (disposing && (components != null)) | |
17 | + { | |
18 | + components.Dispose(); | |
19 | + } | |
20 | + base.Dispose(disposing); | |
21 | + } | |
22 | + | |
23 | + #region Windows Form Designer generated code | |
24 | + | |
25 | + /// <summary> | |
26 | + /// Required method for Designer support - do not modify | |
27 | + /// the contents of this method with the code editor. | |
28 | + /// </summary> | |
29 | + private void InitializeComponent() | |
30 | + { | |
31 | + this.btnRead = new System.Windows.Forms.Button(); | |
32 | + this.textBox1 = new System.Windows.Forms.TextBox(); | |
33 | + this.btnExecute = new System.Windows.Forms.Button(); | |
34 | + this.listBox1 = new System.Windows.Forms.ListBox(); | |
35 | + this.listBox2 = new System.Windows.Forms.ListBox(); | |
36 | + this.textBox2 = new System.Windows.Forms.TextBox(); | |
37 | + this.label1 = new System.Windows.Forms.Label(); | |
38 | + this.label2 = new System.Windows.Forms.Label(); | |
39 | + this.btnWrite = new System.Windows.Forms.Button(); | |
40 | + this.SuspendLayout(); | |
41 | + // | |
42 | + // btnRead | |
43 | + // | |
44 | + this.btnRead.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); | |
45 | + this.btnRead.Location = new System.Drawing.Point(490, 39); | |
46 | + this.btnRead.Name = "btnRead"; | |
47 | + this.btnRead.Size = new System.Drawing.Size(75, 23); | |
48 | + this.btnRead.TabIndex = 0; | |
49 | + this.btnRead.Text = "Browse"; | |
50 | + this.btnRead.UseVisualStyleBackColor = true; | |
51 | + this.btnRead.Click += new System.EventHandler(this.button1_Click); | |
52 | + // | |
53 | + // textBox1 | |
54 | + // | |
55 | + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | |
56 | + | System.Windows.Forms.AnchorStyles.Left) | |
57 | + | System.Windows.Forms.AnchorStyles.Right))); | |
58 | + this.textBox1.Location = new System.Drawing.Point(91, 41); | |
59 | + this.textBox1.Name = "textBox1"; | |
60 | + this.textBox1.Size = new System.Drawing.Size(393, 20); | |
61 | + this.textBox1.TabIndex = 1; | |
62 | + // | |
63 | + // btnExecute | |
64 | + // | |
65 | + this.btnExecute.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); | |
66 | + this.btnExecute.Location = new System.Drawing.Point(579, 100); | |
67 | + this.btnExecute.Name = "btnExecute"; | |
68 | + this.btnExecute.Size = new System.Drawing.Size(85, 39); | |
69 | + this.btnExecute.TabIndex = 2; | |
70 | + this.btnExecute.Text = "Execute"; | |
71 | + this.btnExecute.UseVisualStyleBackColor = true; | |
72 | + this.btnExecute.Click += new System.EventHandler(this.button2_Click); | |
73 | + // | |
74 | + // listBox1 | |
75 | + // | |
76 | + this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | |
77 | + | System.Windows.Forms.AnchorStyles.Left) | |
78 | + | System.Windows.Forms.AnchorStyles.Right))); | |
79 | + this.listBox1.FormattingEnabled = true; | |
80 | + this.listBox1.Location = new System.Drawing.Point(12, 145); | |
81 | + this.listBox1.Name = "listBox1"; | |
82 | + this.listBox1.Size = new System.Drawing.Size(652, 199); | |
83 | + this.listBox1.TabIndex = 3; | |
84 | + // | |
85 | + // listBox2 | |
86 | + // | |
87 | + this.listBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | |
88 | + | System.Windows.Forms.AnchorStyles.Right))); | |
89 | + this.listBox2.FormattingEnabled = true; | |
90 | + this.listBox2.Location = new System.Drawing.Point(12, 356); | |
91 | + this.listBox2.Name = "listBox2"; | |
92 | + this.listBox2.Size = new System.Drawing.Size(652, 134); | |
93 | + this.listBox2.TabIndex = 4; | |
94 | + // | |
95 | + // textBox2 | |
96 | + // | |
97 | + this.textBox2.Location = new System.Drawing.Point(91, 102); | |
98 | + this.textBox2.Name = "textBox2"; | |
99 | + this.textBox2.Size = new System.Drawing.Size(393, 20); | |
100 | + this.textBox2.TabIndex = 5; | |
101 | + // | |
102 | + // label1 | |
103 | + // | |
104 | + this.label1.AutoSize = true; | |
105 | + this.label1.Location = new System.Drawing.Point(27, 45); | |
106 | + this.label1.Name = "label1"; | |
107 | + this.label1.Size = new System.Drawing.Size(58, 13); | |
108 | + this.label1.TabIndex = 6; | |
109 | + this.label1.Text = "Path Read"; | |
110 | + // | |
111 | + // label2 | |
112 | + // | |
113 | + this.label2.AutoSize = true; | |
114 | + this.label2.Location = new System.Drawing.Point(27, 105); | |
115 | + this.label2.Name = "label2"; | |
116 | + this.label2.Size = new System.Drawing.Size(57, 13); | |
117 | + this.label2.TabIndex = 7; | |
118 | + this.label2.Text = "Path Write"; | |
119 | + // | |
120 | + // btnWrite | |
121 | + // | |
122 | + this.btnWrite.Location = new System.Drawing.Point(490, 100); | |
123 | + this.btnWrite.Name = "btnWrite"; | |
124 | + this.btnWrite.Size = new System.Drawing.Size(75, 23); | |
125 | + this.btnWrite.TabIndex = 8; | |
126 | + this.btnWrite.Text = "Browse"; | |
127 | + this.btnWrite.UseVisualStyleBackColor = true; | |
128 | + this.btnWrite.Click += new System.EventHandler(this.btnWrite_Click); | |
129 | + // | |
130 | + // Form1 | |
131 | + // | |
132 | + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | |
133 | + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |
134 | + this.ClientSize = new System.Drawing.Size(676, 517); | |
135 | + this.Controls.Add(this.btnWrite); | |
136 | + this.Controls.Add(this.label2); | |
137 | + this.Controls.Add(this.label1); | |
138 | + this.Controls.Add(this.textBox2); | |
139 | + this.Controls.Add(this.listBox2); | |
140 | + this.Controls.Add(this.listBox1); | |
141 | + this.Controls.Add(this.btnExecute); | |
142 | + this.Controls.Add(this.textBox1); | |
143 | + this.Controls.Add(this.btnRead); | |
144 | + this.Name = "Form1"; | |
145 | + this.Text = "Form1"; | |
146 | + this.ResumeLayout(false); | |
147 | + this.PerformLayout(); | |
148 | + | |
149 | + } | |
150 | + | |
151 | + #endregion | |
152 | + | |
153 | + private System.Windows.Forms.Button btnRead; | |
154 | + private System.Windows.Forms.TextBox textBox1; | |
155 | + private System.Windows.Forms.Button btnExecute; | |
156 | + private System.Windows.Forms.ListBox listBox1; | |
157 | + private System.Windows.Forms.ListBox listBox2; | |
158 | + private System.Windows.Forms.TextBox textBox2; | |
159 | + private System.Windows.Forms.Label label1; | |
160 | + private System.Windows.Forms.Label label2; | |
161 | + private System.Windows.Forms.Button btnWrite; | |
162 | + } | |
163 | +} | |
164 | + | ... | ... |
... | ... | @@ -0,0 +1,189 @@ |
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.ComponentModel; | |
4 | +using System.Data; | |
5 | +using System.Data.OleDb; | |
6 | +using System.Data.SqlClient; | |
7 | +using System.Drawing; | |
8 | +using System.IO; | |
9 | +using System.Linq; | |
10 | +using System.Text; | |
11 | +using System.Threading.Tasks; | |
12 | +using System.Windows.Forms; | |
13 | + | |
14 | +namespace FoxPro | |
15 | +{ | |
16 | + public partial class Form1 : Form | |
17 | + { | |
18 | + string pathRead ; | |
19 | + string pathWrite ; | |
20 | + List<string> list = new List<string>(); | |
21 | + public Form1() | |
22 | + { | |
23 | + InitializeComponent(); | |
24 | + } | |
25 | + | |
26 | + private void button1_Click(object sender, EventArgs e) | |
27 | + { | |
28 | + // get Path Read | |
29 | + listBox1.Items.Clear() ; | |
30 | + string folderPath; | |
31 | + FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog(); | |
32 | + if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) | |
33 | + { | |
34 | + folderPath = folderBrowserDialog1.SelectedPath; | |
35 | + textBox1.Text = folderPath; | |
36 | + } | |
37 | + } | |
38 | + // get Path Write | |
39 | + private void btnWrite_Click(object sender, EventArgs e) | |
40 | + { | |
41 | + listBox2.Items.Clear(); | |
42 | + string folderPath; | |
43 | + FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog(); | |
44 | + if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) | |
45 | + { | |
46 | + folderPath = folderBrowserDialog1.SelectedPath; | |
47 | + textBox2.Text = folderPath; | |
48 | + } | |
49 | + } | |
50 | + | |
51 | + private void button2_Click(object sender, EventArgs e) | |
52 | + { | |
53 | + pathRead = textBox1.Text; | |
54 | + pathWrite = textBox2.Text; | |
55 | + string[] nameDir = pathRead.Split(new[] { "\\" }, StringSplitOptions.None); | |
56 | + int l = nameDir.Length; | |
57 | + createDir(pathWrite + "\\" + nameDir[l-1]); | |
58 | + // GetFiles dbf of filePaths | |
59 | + string[] filePaths = Directory.GetFiles(pathRead, "*.dbf", SearchOption.AllDirectories); | |
60 | + foreach (string file in filePaths) | |
61 | + { | |
62 | + WriteLog(file); | |
63 | + string path = file.Replace(pathRead,""); | |
64 | + string[] name = path.Split(new[] { "\\" }, StringSplitOptions.None); | |
65 | + int length = name.Length; | |
66 | + path = path.Replace(name[length - 1], ""); | |
67 | + // create path for write file | |
68 | + createDir(pathWrite + "\\" + nameDir[l - 1] + path); | |
69 | + // get data of file DBF | |
70 | + GetData(file, name[length - 1], pathWrite + "\\" + nameDir[l - 1] + path); | |
71 | + } | |
72 | + } | |
73 | + | |
74 | + | |
75 | + | |
76 | + | |
77 | + | |
78 | + // สร้าง Directory | |
79 | + public void createDir(string pathWrite) | |
80 | + { | |
81 | + try | |
82 | + { | |
83 | + // Determine whether the directory exists. | |
84 | + if (Directory.Exists(pathWrite)) | |
85 | + { | |
86 | + return; | |
87 | + } | |
88 | + // Try to create the directory. | |
89 | + DirectoryInfo di = Directory.CreateDirectory(pathWrite); | |
90 | + WriteLog("The directory was created successfully"); | |
91 | + } | |
92 | + catch (Exception e) | |
93 | + { | |
94 | + WriteLog("The process failed: " + e.ToString()); | |
95 | + } | |
96 | + finally { } | |
97 | + } | |
98 | + | |
99 | + // ดึงข้อมูลใน DBF | |
100 | + public void GetData(string path, string fileName, string pathWrite) | |
101 | + { | |
102 | + try | |
103 | + { | |
104 | + WriteLog("GetData : " + fileName); | |
105 | + DataTable data = new DataTable(); | |
106 | + OleDbConnection yourConnectionHandler = new OleDbConnection( | |
107 | + @"Provider=VFPOLEDB.1;Data Source=" + path + "; Persist Security Info=False;"); | |
108 | + string[] table = fileName.Split(new string[] { ".dbf", ".DBF" }, StringSplitOptions.RemoveEmptyEntries); | |
109 | + | |
110 | + //Open the connection, and if open successfully, you can try to query it | |
111 | + yourConnectionHandler.Open(); | |
112 | + | |
113 | + if (yourConnectionHandler.State == ConnectionState.Open) | |
114 | + { | |
115 | + string mySQL = "select * from " + table[0]; // dbf table name | |
116 | + | |
117 | + OleDbCommand MyQuery = new OleDbCommand(mySQL, yourConnectionHandler); | |
118 | + OleDbDataAdapter DA = new OleDbDataAdapter(MyQuery); | |
119 | + | |
120 | + DA.Fill(data); | |
121 | + yourConnectionHandler.Close(); | |
122 | + } | |
123 | + // write data to flie text | |
124 | + WriteTable(data, pathWrite, table[0]); | |
125 | + } | |
126 | + catch (System.Data.OleDb.OleDbException lolex) | |
127 | + { | |
128 | + list.Add(path); | |
129 | + listBox2.Items.Add(path + "\n"); | |
130 | + WriteLog("###" + lolex.ToString()); | |
131 | + } | |
132 | + catch (Exception ex) | |
133 | + { | |
134 | + list.Add(path); | |
135 | + listBox2.Items.Add(path + "\n"); | |
136 | + WriteLog("###" + ex.ToString()); | |
137 | + } | |
138 | + } | |
139 | + | |
140 | + // เขียนไฟล์ .txt | |
141 | + private void WriteTable(DataTable table, string pathWrite, string name) | |
142 | + { | |
143 | + bool r = true; | |
144 | + string lines = ""; | |
145 | + string text = ""; | |
146 | + // Write the string to file text | |
147 | + StreamWriter file = new StreamWriter(pathWrite + "\\" + name + ".csv", false, Encoding.UTF8); | |
148 | + WriteLog("Writer : " + pathWrite + "\\" + name + ".csv"); | |
149 | + | |
150 | + // get Columns name | |
151 | + foreach (DataColumn col in table.Columns) | |
152 | + { | |
153 | + if (!r) lines += ", "; | |
154 | + lines += col.ToString().Trim(); | |
155 | + r = false; | |
156 | + } | |
157 | + file.WriteLine(lines); | |
158 | + lines = ""; | |
159 | + | |
160 | + // get data row | |
161 | + foreach (DataRow row in table.Rows) | |
162 | + { | |
163 | + bool firstCol = true; | |
164 | + foreach (DataColumn col in table.Columns) | |
165 | + { | |
166 | + if (!firstCol) text += ", "; | |
167 | + text += row[col].ToString().Trim(); | |
168 | + firstCol = false; | |
169 | + } | |
170 | + file.WriteLine(text); | |
171 | + text = ""; | |
172 | + } | |
173 | + file.Close(); | |
174 | + WriteLog("Writer " + name + ".csv Complete"); | |
175 | + } | |
176 | + | |
177 | + // WriteLog | |
178 | + public void WriteLog(string log) | |
179 | + { | |
180 | + string timeStamp = DateTime.Now.ToString(); | |
181 | + string writeLog = timeStamp + " : [ " + log + " ]"; | |
182 | + listBox1.Items.Add(writeLog + "\n"); | |
183 | + } | |
184 | + | |
185 | + | |
186 | + | |
187 | + | |
188 | + } | |
189 | +} | ... | ... |
... | ... | @@ -0,0 +1,120 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<root> | |
3 | + <!-- | |
4 | + Microsoft ResX Schema | |
5 | + | |
6 | + Version 2.0 | |
7 | + | |
8 | + The primary goals of this format is to allow a simple XML format | |
9 | + that is mostly human readable. The generation and parsing of the | |
10 | + various data types are done through the TypeConverter classes | |
11 | + associated with the data types. | |
12 | + | |
13 | + Example: | |
14 | + | |
15 | + ... ado.net/XML headers & schema ... | |
16 | + <resheader name="resmimetype">text/microsoft-resx</resheader> | |
17 | + <resheader name="version">2.0</resheader> | |
18 | + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | |
19 | + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | |
20 | + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | |
21 | + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | |
22 | + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | |
23 | + <value>[base64 mime encoded serialized .NET Framework object]</value> | |
24 | + </data> | |
25 | + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | |
26 | + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | |
27 | + <comment>This is a comment</comment> | |
28 | + </data> | |
29 | + | |
30 | + There are any number of "resheader" rows that contain simple | |
31 | + name/value pairs. | |
32 | + | |
33 | + Each data row contains a name, and value. The row also contains a | |
34 | + type or mimetype. Type corresponds to a .NET class that support | |
35 | + text/value conversion through the TypeConverter architecture. | |
36 | + Classes that don't support this are serialized and stored with the | |
37 | + mimetype set. | |
38 | + | |
39 | + The mimetype is used for serialized objects, and tells the | |
40 | + ResXResourceReader how to depersist the object. This is currently not | |
41 | + extensible. For a given mimetype the value must be set accordingly: | |
42 | + | |
43 | + Note - application/x-microsoft.net.object.binary.base64 is the format | |
44 | + that the ResXResourceWriter will generate, however the reader can | |
45 | + read any of the formats listed below. | |
46 | + | |
47 | + mimetype: application/x-microsoft.net.object.binary.base64 | |
48 | + value : The object must be serialized with | |
49 | + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter | |
50 | + : and then encoded with base64 encoding. | |
51 | + | |
52 | + mimetype: application/x-microsoft.net.object.soap.base64 | |
53 | + value : The object must be serialized with | |
54 | + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | |
55 | + : and then encoded with base64 encoding. | |
56 | + | |
57 | + mimetype: application/x-microsoft.net.object.bytearray.base64 | |
58 | + value : The object must be serialized into a byte array | |
59 | + : using a System.ComponentModel.TypeConverter | |
60 | + : and then encoded with base64 encoding. | |
61 | + --> | |
62 | + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | |
63 | + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> | |
64 | + <xsd:element name="root" msdata:IsDataSet="true"> | |
65 | + <xsd:complexType> | |
66 | + <xsd:choice maxOccurs="unbounded"> | |
67 | + <xsd:element name="metadata"> | |
68 | + <xsd:complexType> | |
69 | + <xsd:sequence> | |
70 | + <xsd:element name="value" type="xsd:string" minOccurs="0" /> | |
71 | + </xsd:sequence> | |
72 | + <xsd:attribute name="name" use="required" type="xsd:string" /> | |
73 | + <xsd:attribute name="type" type="xsd:string" /> | |
74 | + <xsd:attribute name="mimetype" type="xsd:string" /> | |
75 | + <xsd:attribute ref="xml:space" /> | |
76 | + </xsd:complexType> | |
77 | + </xsd:element> | |
78 | + <xsd:element name="assembly"> | |
79 | + <xsd:complexType> | |
80 | + <xsd:attribute name="alias" type="xsd:string" /> | |
81 | + <xsd:attribute name="name" type="xsd:string" /> | |
82 | + </xsd:complexType> | |
83 | + </xsd:element> | |
84 | + <xsd:element name="data"> | |
85 | + <xsd:complexType> | |
86 | + <xsd:sequence> | |
87 | + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | |
88 | + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | |
89 | + </xsd:sequence> | |
90 | + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> | |
91 | + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | |
92 | + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | |
93 | + <xsd:attribute ref="xml:space" /> | |
94 | + </xsd:complexType> | |
95 | + </xsd:element> | |
96 | + <xsd:element name="resheader"> | |
97 | + <xsd:complexType> | |
98 | + <xsd:sequence> | |
99 | + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | |
100 | + </xsd:sequence> | |
101 | + <xsd:attribute name="name" type="xsd:string" use="required" /> | |
102 | + </xsd:complexType> | |
103 | + </xsd:element> | |
104 | + </xsd:choice> | |
105 | + </xsd:complexType> | |
106 | + </xsd:element> | |
107 | + </xsd:schema> | |
108 | + <resheader name="resmimetype"> | |
109 | + <value>text/microsoft-resx</value> | |
110 | + </resheader> | |
111 | + <resheader name="version"> | |
112 | + <value>2.0</value> | |
113 | + </resheader> | |
114 | + <resheader name="reader"> | |
115 | + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
116 | + </resheader> | |
117 | + <resheader name="writer"> | |
118 | + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
119 | + </resheader> | |
120 | +</root> | |
0 | 121 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,91 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
3 | + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | |
4 | + <PropertyGroup> | |
5 | + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |
6 | + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |
7 | + <ProjectGuid>{55A727FB-C833-43F5-A5DF-29EA7FF725EF}</ProjectGuid> | |
8 | + <OutputType>WinExe</OutputType> | |
9 | + <AppDesignerFolder>Properties</AppDesignerFolder> | |
10 | + <RootNamespace>FoxPro</RootNamespace> | |
11 | + <AssemblyName>FoxPro</AssemblyName> | |
12 | + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |
13 | + <FileAlignment>512</FileAlignment> | |
14 | + </PropertyGroup> | |
15 | + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |
16 | + <PlatformTarget>AnyCPU</PlatformTarget> | |
17 | + <DebugSymbols>true</DebugSymbols> | |
18 | + <DebugType>full</DebugType> | |
19 | + <Optimize>false</Optimize> | |
20 | + <OutputPath>bin\Debug\</OutputPath> | |
21 | + <DefineConstants>DEBUG;TRACE</DefineConstants> | |
22 | + <ErrorReport>prompt</ErrorReport> | |
23 | + <WarningLevel>4</WarningLevel> | |
24 | + </PropertyGroup> | |
25 | + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |
26 | + <PlatformTarget>AnyCPU</PlatformTarget> | |
27 | + <DebugType>pdbonly</DebugType> | |
28 | + <Optimize>true</Optimize> | |
29 | + <OutputPath>bin\Release\</OutputPath> | |
30 | + <DefineConstants>TRACE</DefineConstants> | |
31 | + <ErrorReport>prompt</ErrorReport> | |
32 | + <WarningLevel>4</WarningLevel> | |
33 | + </PropertyGroup> | |
34 | + <ItemGroup> | |
35 | + <Reference Include="System" /> | |
36 | + <Reference Include="System.Core" /> | |
37 | + <Reference Include="System.Xml.Linq" /> | |
38 | + <Reference Include="System.Data.DataSetExtensions" /> | |
39 | + <Reference Include="Microsoft.CSharp" /> | |
40 | + <Reference Include="System.Data" /> | |
41 | + <Reference Include="System.Deployment" /> | |
42 | + <Reference Include="System.Drawing" /> | |
43 | + <Reference Include="System.Windows.Forms" /> | |
44 | + <Reference Include="System.Xml" /> | |
45 | + </ItemGroup> | |
46 | + <ItemGroup> | |
47 | + <Compile Include="Form1.cs"> | |
48 | + <SubType>Form</SubType> | |
49 | + </Compile> | |
50 | + <Compile Include="Form1.Designer.cs"> | |
51 | + <DependentUpon>Form1.cs</DependentUpon> | |
52 | + </Compile> | |
53 | + <Compile Include="Program.cs" /> | |
54 | + <Compile Include="Properties\AssemblyInfo.cs" /> | |
55 | + <EmbeddedResource Include="Form1.resx"> | |
56 | + <DependentUpon>Form1.cs</DependentUpon> | |
57 | + </EmbeddedResource> | |
58 | + <EmbeddedResource Include="Properties\Resources.resx"> | |
59 | + <Generator>ResXFileCodeGenerator</Generator> | |
60 | + <LastGenOutput>Resources.Designer.cs</LastGenOutput> | |
61 | + <SubType>Designer</SubType> | |
62 | + </EmbeddedResource> | |
63 | + <Compile Include="Properties\Resources.Designer.cs"> | |
64 | + <AutoGen>True</AutoGen> | |
65 | + <DependentUpon>Resources.resx</DependentUpon> | |
66 | + </Compile> | |
67 | + <None Include="Properties\Settings.settings"> | |
68 | + <Generator>SettingsSingleFileGenerator</Generator> | |
69 | + <LastGenOutput>Settings.Designer.cs</LastGenOutput> | |
70 | + </None> | |
71 | + <Compile Include="Properties\Settings.Designer.cs"> | |
72 | + <AutoGen>True</AutoGen> | |
73 | + <DependentUpon>Settings.settings</DependentUpon> | |
74 | + <DesignTimeSharedInput>True</DesignTimeSharedInput> | |
75 | + </Compile> | |
76 | + </ItemGroup> | |
77 | + <ItemGroup> | |
78 | + <None Include="App.config" /> | |
79 | + </ItemGroup> | |
80 | + <ItemGroup> | |
81 | + <WCFMetadata Include="Service References\" /> | |
82 | + </ItemGroup> | |
83 | + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |
84 | + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | |
85 | + Other similar extension points exist, see Microsoft.Common.targets. | |
86 | + <Target Name="BeforeBuild"> | |
87 | + </Target> | |
88 | + <Target Name="AfterBuild"> | |
89 | + </Target> | |
90 | + --> | |
91 | +</Project> | |
0 | 92 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,22 @@ |
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.Linq; | |
4 | +using System.Threading.Tasks; | |
5 | +using System.Windows.Forms; | |
6 | + | |
7 | +namespace FoxPro | |
8 | +{ | |
9 | + static class Program | |
10 | + { | |
11 | + /// <summary> | |
12 | + /// The main entry point for the application. | |
13 | + /// </summary> | |
14 | + [STAThread] | |
15 | + static void Main() | |
16 | + { | |
17 | + Application.EnableVisualStyles(); | |
18 | + Application.SetCompatibleTextRenderingDefault(false); | |
19 | + Application.Run(new Form1()); | |
20 | + } | |
21 | + } | |
22 | +} | ... | ... |
... | ... | @@ -0,0 +1,36 @@ |
1 | +using System.Reflection; | |
2 | +using System.Runtime.CompilerServices; | |
3 | +using System.Runtime.InteropServices; | |
4 | + | |
5 | +// General Information about an assembly is controlled through the following | |
6 | +// set of attributes. Change these attribute values to modify the information | |
7 | +// associated with an assembly. | |
8 | +[assembly: AssemblyTitle("FoxPro")] | |
9 | +[assembly: AssemblyDescription("")] | |
10 | +[assembly: AssemblyConfiguration("")] | |
11 | +[assembly: AssemblyCompany("")] | |
12 | +[assembly: AssemblyProduct("FoxPro")] | |
13 | +[assembly: AssemblyCopyright("Copyright © 2016")] | |
14 | +[assembly: AssemblyTrademark("")] | |
15 | +[assembly: AssemblyCulture("")] | |
16 | + | |
17 | +// Setting ComVisible to false makes the types in this assembly not visible | |
18 | +// to COM components. If you need to access a type in this assembly from | |
19 | +// COM, set the ComVisible attribute to true on that type. | |
20 | +[assembly: ComVisible(false)] | |
21 | + | |
22 | +// The following GUID is for the ID of the typelib if this project is exposed to COM | |
23 | +[assembly: Guid("3ff8c4ef-8e3a-498a-9638-8656ea71516e")] | |
24 | + | |
25 | +// Version information for an assembly consists of the following four values: | |
26 | +// | |
27 | +// Major Version | |
28 | +// Minor Version | |
29 | +// Build Number | |
30 | +// Revision | |
31 | +// | |
32 | +// You can specify all the values or you can default the Build and Revision Numbers | |
33 | +// by using the '*' as shown below: | |
34 | +// [assembly: AssemblyVersion("1.0.*")] | |
35 | +[assembly: AssemblyVersion("1.0.0.0")] | |
36 | +[assembly: AssemblyFileVersion("1.0.0.0")] | ... | ... |
... | ... | @@ -0,0 +1,71 @@ |
1 | +//------------------------------------------------------------------------------ | |
2 | +// <auto-generated> | |
3 | +// This code was generated by a tool. | |
4 | +// Runtime Version:4.0.30319.42000 | |
5 | +// | |
6 | +// Changes to this file may cause incorrect behavior and will be lost if | |
7 | +// the code is regenerated. | |
8 | +// </auto-generated> | |
9 | +//------------------------------------------------------------------------------ | |
10 | + | |
11 | +namespace FoxPro.Properties | |
12 | +{ | |
13 | + | |
14 | + | |
15 | + /// <summary> | |
16 | + /// A strongly-typed resource class, for looking up localized strings, etc. | |
17 | + /// </summary> | |
18 | + // This class was auto-generated by the StronglyTypedResourceBuilder | |
19 | + // class via a tool like ResGen or Visual Studio. | |
20 | + // To add or remove a member, edit your .ResX file then rerun ResGen | |
21 | + // with the /str option, or rebuild your VS project. | |
22 | + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] | |
23 | + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] | |
24 | + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] | |
25 | + internal class Resources | |
26 | + { | |
27 | + | |
28 | + private static global::System.Resources.ResourceManager resourceMan; | |
29 | + | |
30 | + private static global::System.Globalization.CultureInfo resourceCulture; | |
31 | + | |
32 | + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] | |
33 | + internal Resources() | |
34 | + { | |
35 | + } | |
36 | + | |
37 | + /// <summary> | |
38 | + /// Returns the cached ResourceManager instance used by this class. | |
39 | + /// </summary> | |
40 | + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] | |
41 | + internal static global::System.Resources.ResourceManager ResourceManager | |
42 | + { | |
43 | + get | |
44 | + { | |
45 | + if ((resourceMan == null)) | |
46 | + { | |
47 | + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FoxPro.Properties.Resources", typeof(Resources).Assembly); | |
48 | + resourceMan = temp; | |
49 | + } | |
50 | + return resourceMan; | |
51 | + } | |
52 | + } | |
53 | + | |
54 | + /// <summary> | |
55 | + /// Overrides the current thread's CurrentUICulture property for all | |
56 | + /// resource lookups using this strongly typed resource class. | |
57 | + /// </summary> | |
58 | + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] | |
59 | + internal static global::System.Globalization.CultureInfo Culture | |
60 | + { | |
61 | + get | |
62 | + { | |
63 | + return resourceCulture; | |
64 | + } | |
65 | + set | |
66 | + { | |
67 | + resourceCulture = value; | |
68 | + } | |
69 | + } | |
70 | + } | |
71 | +} | ... | ... |
... | ... | @@ -0,0 +1,117 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<root> | |
3 | + <!-- | |
4 | + Microsoft ResX Schema | |
5 | + | |
6 | + Version 2.0 | |
7 | + | |
8 | + The primary goals of this format is to allow a simple XML format | |
9 | + that is mostly human readable. The generation and parsing of the | |
10 | + various data types are done through the TypeConverter classes | |
11 | + associated with the data types. | |
12 | + | |
13 | + Example: | |
14 | + | |
15 | + ... ado.net/XML headers & schema ... | |
16 | + <resheader name="resmimetype">text/microsoft-resx</resheader> | |
17 | + <resheader name="version">2.0</resheader> | |
18 | + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | |
19 | + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | |
20 | + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | |
21 | + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | |
22 | + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | |
23 | + <value>[base64 mime encoded serialized .NET Framework object]</value> | |
24 | + </data> | |
25 | + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | |
26 | + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | |
27 | + <comment>This is a comment</comment> | |
28 | + </data> | |
29 | + | |
30 | + There are any number of "resheader" rows that contain simple | |
31 | + name/value pairs. | |
32 | + | |
33 | + Each data row contains a name, and value. The row also contains a | |
34 | + type or mimetype. Type corresponds to a .NET class that support | |
35 | + text/value conversion through the TypeConverter architecture. | |
36 | + Classes that don't support this are serialized and stored with the | |
37 | + mimetype set. | |
38 | + | |
39 | + The mimetype is used for serialized objects, and tells the | |
40 | + ResXResourceReader how to depersist the object. This is currently not | |
41 | + extensible. For a given mimetype the value must be set accordingly: | |
42 | + | |
43 | + Note - application/x-microsoft.net.object.binary.base64 is the format | |
44 | + that the ResXResourceWriter will generate, however the reader can | |
45 | + read any of the formats listed below. | |
46 | + | |
47 | + mimetype: application/x-microsoft.net.object.binary.base64 | |
48 | + value : The object must be serialized with | |
49 | + : System.Serialization.Formatters.Binary.BinaryFormatter | |
50 | + : and then encoded with base64 encoding. | |
51 | + | |
52 | + mimetype: application/x-microsoft.net.object.soap.base64 | |
53 | + value : The object must be serialized with | |
54 | + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | |
55 | + : and then encoded with base64 encoding. | |
56 | + | |
57 | + mimetype: application/x-microsoft.net.object.bytearray.base64 | |
58 | + value : The object must be serialized into a byte array | |
59 | + : using a System.ComponentModel.TypeConverter | |
60 | + : and then encoded with base64 encoding. | |
61 | + --> | |
62 | + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | |
63 | + <xsd:element name="root" msdata:IsDataSet="true"> | |
64 | + <xsd:complexType> | |
65 | + <xsd:choice maxOccurs="unbounded"> | |
66 | + <xsd:element name="metadata"> | |
67 | + <xsd:complexType> | |
68 | + <xsd:sequence> | |
69 | + <xsd:element name="value" type="xsd:string" minOccurs="0" /> | |
70 | + </xsd:sequence> | |
71 | + <xsd:attribute name="name" type="xsd:string" /> | |
72 | + <xsd:attribute name="type" type="xsd:string" /> | |
73 | + <xsd:attribute name="mimetype" type="xsd:string" /> | |
74 | + </xsd:complexType> | |
75 | + </xsd:element> | |
76 | + <xsd:element name="assembly"> | |
77 | + <xsd:complexType> | |
78 | + <xsd:attribute name="alias" type="xsd:string" /> | |
79 | + <xsd:attribute name="name" type="xsd:string" /> | |
80 | + </xsd:complexType> | |
81 | + </xsd:element> | |
82 | + <xsd:element name="data"> | |
83 | + <xsd:complexType> | |
84 | + <xsd:sequence> | |
85 | + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | |
86 | + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | |
87 | + </xsd:sequence> | |
88 | + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> | |
89 | + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | |
90 | + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | |
91 | + </xsd:complexType> | |
92 | + </xsd:element> | |
93 | + <xsd:element name="resheader"> | |
94 | + <xsd:complexType> | |
95 | + <xsd:sequence> | |
96 | + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | |
97 | + </xsd:sequence> | |
98 | + <xsd:attribute name="name" type="xsd:string" use="required" /> | |
99 | + </xsd:complexType> | |
100 | + </xsd:element> | |
101 | + </xsd:choice> | |
102 | + </xsd:complexType> | |
103 | + </xsd:element> | |
104 | + </xsd:schema> | |
105 | + <resheader name="resmimetype"> | |
106 | + <value>text/microsoft-resx</value> | |
107 | + </resheader> | |
108 | + <resheader name="version"> | |
109 | + <value>2.0</value> | |
110 | + </resheader> | |
111 | + <resheader name="reader"> | |
112 | + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
113 | + </resheader> | |
114 | + <resheader name="writer"> | |
115 | + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
116 | + </resheader> | |
117 | +</root> | |
0 | 118 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,30 @@ |
1 | +//------------------------------------------------------------------------------ | |
2 | +// <auto-generated> | |
3 | +// This code was generated by a tool. | |
4 | +// Runtime Version:4.0.30319.42000 | |
5 | +// | |
6 | +// Changes to this file may cause incorrect behavior and will be lost if | |
7 | +// the code is regenerated. | |
8 | +// </auto-generated> | |
9 | +//------------------------------------------------------------------------------ | |
10 | + | |
11 | +namespace FoxPro.Properties | |
12 | +{ | |
13 | + | |
14 | + | |
15 | + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] | |
16 | + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] | |
17 | + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase | |
18 | + { | |
19 | + | |
20 | + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); | |
21 | + | |
22 | + public static Settings Default | |
23 | + { | |
24 | + get | |
25 | + { | |
26 | + return defaultInstance; | |
27 | + } | |
28 | + } | |
29 | + } | |
30 | +} | ... | ... |
No preview for this file type
No preview for this file type
No preview for this file type
... | ... | @@ -0,0 +1,11 @@ |
1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | |
2 | +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> | |
3 | + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> | |
4 | + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> | |
5 | + <security> | |
6 | + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> | |
7 | + <requestedExecutionLevel level="asInvoker" uiAccess="false"/> | |
8 | + </requestedPrivileges> | |
9 | + </security> | |
10 | + </trustInfo> | |
11 | +</assembly> | ... | ... |
No preview for this file type
FoxPro/FoxPro/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
0 → 100644
No preview for this file type
No preview for this file type
No preview for this file type
FoxPro/FoxPro/obj/Debug/FoxPro.csproj.FileListAbsolute.txt
0 → 100644
... | ... | @@ -0,0 +1,9 @@ |
1 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\bin\Debug\FoxPro.exe.config | |
2 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\bin\Debug\FoxPro.exe | |
3 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\bin\Debug\FoxPro.pdb | |
4 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\obj\Debug\FoxPro.csprojResolveAssemblyReference.cache | |
5 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\obj\Debug\FoxPro.Form1.resources | |
6 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\obj\Debug\FoxPro.Properties.Resources.resources | |
7 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\obj\Debug\FoxPro.csproj.GenerateResource.Cache | |
8 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\obj\Debug\FoxPro.exe | |
9 | +c:\users\admin\documents\visual studio 2013\Projects\FoxPro\FoxPro\obj\Debug\FoxPro.pdb | ... | ... |
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
FoxPro/FoxPro/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
0 → 100644
FoxPro/FoxPro/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
0 → 100644
FoxPro/FoxPro/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
0 → 100644