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,036

HOME > .NET Framework > Forum > C# WinApp อยากทราบวิธีวนลูปหลายลูปโดยสามารถกำหนดจำนวนลูปได้ครับ



 

C# WinApp อยากทราบวิธีวนลูปหลายลูปโดยสามารถกำหนดจำนวนลูปได้ครับ

 



Topic : 113788



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



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



คือผมหัดเขียนโค๊ดถอดรหัส winrar อยู่ครับ
โดยกะว่าจะเก็บ pass ไว้ใน access ก่อน
โดยจะมีความยาวตั้งแต่ 3 - 255 ตัวอักษร

โค๊ดประมาณนี้ครับ
Code (C#)
private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'dataSet1.pass' table. You can move, or remove it, as needed.
            this.passTableAdapter.Fill(this.dataSet1.pass);
            clsRAR rar = new clsRAR();
            foreach (string str1 in rar.strSymbol)
            {
                foreach (string str2 in rar.strSymbol)
                {
                    foreach (string str3 in rar.strSymbol)
                    {
                        this.passTableAdapter.Insert(str1 + str2 + str3);
                    }
                }
            }
            foreach (string str1 in rar.strSymbol)
            {
                foreach (string str2 in rar.strSymbol)
                {
                    foreach (string str3 in rar.strSymbol)
                    {
                        foreach (string str4 in rar.strSymbol)
                        {
                            this.passTableAdapter.Insert(str1 + str2 + str3+str4);
                        }  
                    }
                }
            }
            foreach (string str1 in rar.strSymbol)
            {
                foreach (string str2 in rar.strSymbol)
                {
                    foreach (string str3 in rar.strSymbol)
                    {
                        foreach (string str4 in rar.strSymbol)
                        {
                            foreach (string str5 in rar.strSymbol)
                            {
                                this.passTableAdapter.Insert(str1 + str2 + str3+str4+str5);
                            }
                        }
                    }
                }
            }
            


ถ้าโค๊ดเป็นแบบนี้เราจะเขียนให้มันสั้นกว่านี้ได้ไม๊ครับโดยกำหนดว่าจำนวนลูปกี่ลูป



Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-01-15 09:51:50 By : lamaka.tor View : 2052 Reply : 13
 

 

No. 1



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



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

วนลูปจากข้อมูลแหล่งเดียวกันแบบนี้ ทำไมไม่ใช้เป็น do while ล่ะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 17:26:16 By : Programmer ด้อยปัญญา
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : Programmer ด้อยปัญญา เมื่อวันที่ 2015-01-15 17:26:16
รายละเอียดของการตอบ ::
do while ก็ได้ครับ
แต่มีวิธีให้วนตามจำนวนที่เราต้องการไม๊ครับ
โดยไม่ต้องเขียนยาวๆ เหมือนที่ผมทำอยู่ได้ไม๊ครับ
ประมาณ
Code (C#)
public void Loop(Integer count)
{
    วนจำนวนลูปตามที่เราต้องการ
}



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-15 18:19:11 By : lamaka.tor
 

 

No. 3



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



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

Code
int i = 0; for (i;i < จำนวนที่ต้องการให้ loop;i++){ // Statement }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-16 08:36:28 By : Programmer ด้อยปัญญา
 


 

No. 4

Guest


ทำได้ประมาณ 3 แบบ ครับ ตาม ตย. ด้านลาง


// ตย. ที่1 การใช้ While Loop
public void Loop(int loop) { int count=0; while (count < loop) { count++; } }


// ตย. ที่2 การใช้ Do While
public void Loop(int loop) { int count=0; do { count++; } while (count < loop); }


// ตย. 3 ตามความคิดเห็นด้านบนเลยครับ ใช้ For loop

ฝากเว็บด้วยครับ เว็บใหม่ thaidevelopment.net/ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-16 10:58:24 By : thaidevelopment.net/
 


 

No. 5



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



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

แบบนั้นมันได้แค่ loop เดียวไม่ใช่เหรอครับ(รึว่าเราเข้าใจผิดน๊)

คือผมหมายถึงว่า ถ้า loop เป็น 3 ก็จะออกมาแบบนี้ครับ
Code (C#)
foreach (string str1 in rar.strSymbol)
            {
                foreach (string str2 in rar.strSymbol)
                {
                    foreach (string str3 in rar.strSymbol)
                    {
                        this.passTableAdapter.Insert(str1 + str2 + str3);
                    }
                }
            }

ถ้า loop เป็น 4 ก็จะออกมาแบบนี้ครับ
Code (C#)
            foreach (string str1 in rar.strSymbol)
            {
                foreach (string str2 in rar.strSymbol)
                {
                    foreach (string str3 in rar.strSymbol)
                    {
                        foreach (string str4 in rar.strSymbol)
                        {
                            this.passTableAdapter.Insert(str1 + str2 + str3+str4);
                        }  
                    }
                }
            }

ถ้า loop เป็น 5 ก็จะออกมาแบบนี้ครับ
Code (C#)
            foreach (string str1 in rar.strSymbol)
            {
                foreach (string str2 in rar.strSymbol)
                {
                    foreach (string str3 in rar.strSymbol)
                    {
                        foreach (string str4 in rar.strSymbol)
                        {
                            foreach (string str5 in rar.strSymbol)
                            {
                                this.passTableAdapter.Insert(str1 + str2 + str3+str4+str5);
                            }
                        }
                    }
                }
            }

และก็จะมีอีกเรื่อยๆจนกว่าจะครบ 255 อักษร

งั้นเว้ากันซื่อๆเลยนะครับ
ท่านๆทั้งหลายเขียน โปรแกรมถอดรหัสกันยังไงอ่าครับ
ขอดูเป็นแนวทางได้ไม๊

คือความคิดบ้านๆผมคือ
เอาอักษรต่างๆ รวม กับ symbol ต่างๆ แล้วก็มาเรียงกัน
ผมใช้ที่ 3 - 255 ตัวอักษรครับ

Code (C#)
namespace WinRAR_Pass
{
    class clsRAR
    {
         public string[] strSymbol = new string[] {"๑","๒","๓","๔","๕","๖","๗","๘","๙","!","#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","[","]","^","_","`","{","|","}","~"};
         public string[] strEng = new string[] {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z" };
         public string[] strTh = new string[] { "ก", "ข", "ฃ", "ค", "ฅ", "ฆ", "ง", "จ", "ฉ", "ช", "ซ", "ฌ", "ญ", "ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ", "ด", "ต", "ถ", "ท", "ธ", "น", "บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม", "ย", "ร", "ล", "ว", "ศ", "ษ", "ส", "ห", "ฬ", "อ", "ฮ", "่", "้", "็", "๋", "๊", "์", "ุ", "ู", "ะ", "า", "ิ", "ี", "ึ", "ื", "ั", "ๆ", "ไ", "ำ", "ใ", "โ", "เ", "แ" };
        
    }
}


ผมกะว่าจะเก็บ pass ทั้งหมดไว้ใน access ก่อนแล้วค่อยเรียกใช้แต่ก็ติดตรงโค๊ดการ insert ที่ต้องวน loop 3- 255 loop นี่แหละครับ
ความคิดบ้านๆของผมก็ดันคิดได้แค่นี้ซะด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-16 11:39:00 By : lamaka.tor
 


 

No. 6



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



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

ดันครับ
สมองบ้านๆของผมยังคิดไม่ออก

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


 

No. 7

Guest


// ตามโค้ดด้านล่างเลยครับ หลักการก็คือ For Loop มาวนลูปเป็น string ตามจำนวนที่เราต้องการ จากนั้นก็แปลงกลับไปเป็นโค้ด C#

public static void LoopForDefine(int LoopNum)
{
string code = string.Empty;
code = @" using System; namespace First { public class Program { public static void Main() {
";
for (int i = 0; i <= LoopNum; i++)
{
code += "for (int i" + i + " = 0; i" + i + " <= " + LoopNum + "; i" + i + "++) \n{";
}
code += "Console.WriteLine(\"Hello, world!\");";
for (int i = 0; i <= LoopNum; i++)
{
code += "\n}";
}
code += @" } } }";
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();

// Reference to System.Drawing library
parameters.ReferencedAssemblies.Add("System.Drawing.dll");
// True - memory generation, false - external file generation
parameters.GenerateInMemory = true;
// True - exe file generation, false - dll file generation
parameters.GenerateExecutable = true;

CompilerResults results = provider.CompileAssemblyFromSource(parameters, code);


Assembly assembly = results.CompiledAssembly;
Type program = assembly.GetType("First.Program");
MethodInfo main = program.GetMethod("Main");

main.Invoke(null, null);

}
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 14:30:41 By : thaidevelopment.net
 


 

No. 8



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



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

ตอบความคิดเห็นที่ : 7 เขียนโดย : thaidevelopment.net เมื่อวันที่ 2015-01-21 14:30:41
รายละเอียดของการตอบ ::

ไม่ได้อ่าครับ
111111

คือผมอยากได้ประมาณว่า
{ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" };
AAA
AAB
AAC
.
.
.
.
zzz
AAAA
AAAB
AAAC
.
.
.
.
zzzz
.
.
.
.
.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

แล้วก็วนลูป strSymbol,strTh
แล้วก็วนลูป 2 array
แล้วก็วนลูป 3 array
เป็นอันเสร็จสิ้น
ทั้งหมดน่าจะเยอะยุ

คือผมจะทำตามนี้ครับ

แซมเปิลสเปซ(Sample Space) คือเซตของผลลัพธ์ที่อาจจะเกิดขึ้นได้ทั้งหมดจากการทดลองสุ่มและเป็นสิ่งที่เราสนใจ เรานิยมใช้สัญลักษณ์ S แทนแซมเปิลสเปซ
จากความหมายของแซมเปิลสเปซ แสดงว่า ในการทดลองหรือการกระทำใด ๆ ก็ตาม
ผลลัพธ์ที่มีโอกาสจะเกิดขึ้นได้ต้องเป็นสมาชิกในแซมเปิลสเปซทั้งสิ้น

ตัวอย่างที่ 1 การหาแซมเปิลสเปซในการโดยเหรียญ 1 เหรียญ ถ้าเราสนใจหน้าที่หงายขึ้น
ผลลัพธ์ที่อาจจะเกิดขึ้นได้คื หัว หรือ ก้อย
ดังนั้นแซมเปิลสเปซที่ได้ คือ S={หัว, ก้อย}

ตัวอย่างที่ 2ในการทอดลูกเต๋า 1 ลูก ถ้าเราสนใจแต้ม ของลูกเต๋าที่หงายขึ้น
ผลลัพธ์ที่อาจจะเกิดขึ้นได้คือ ลูกเต๋าขึ้นแต้ม 1 หรือ 2 หรือ 3 หรือ 4 หรือ 5 หรือ 6
ดังนั้นแซมเปิลสเปซที่ได้คือS = {1, 2,3,4,5,6}

ตัวอย่างที่ 3 จากการทดลองสุ่มโดยการทดลองทอดลูกเต๋า 2 ลูก
1. จงหาแซมเปิลสเปซของแต้มของลูกเต๋าที่หงายขึ้น
2. จงหาแซมเปิลสเปซของผลรวมของแต้มบนลูกเต๋า

วิธีทำ 1. เนื่องจากโจทย์สนใจแต้มของลูกเต๋าที่หงายขึ้น
ดังนั้นเราต้องเขียนแต้มของลูกเต๋าที่มีโอกาสที่จะหงายขึ้นมาทั้งหมด
และเพื่อความสะดวกให้ (a,b) แทนผลลัพธ์ที่อาจจะเกิดขึ้น โดยที่

a แทนแต้มที่หงายขึ้นของลูกเต๋าลูกแรก
b แทนแต้มที่หงายขึ้นของลูกเต๋าลูกที่สอง

ดังนั้นแซมเปิลสเปซของการทดลองสุ่มคือ
S={(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),
(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),
(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),
(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),
(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),
(6,1),(6,2),(6,3),(6,4),(6,5),(6,6)}

2. เนื่องจากโจทย์สนใจผลรวมของแต้มบนลูกเต๋า
ดังนั้นเราต้องเขียนผลรวมของแต้มบนลูกเต๋าที่มีโอกาสเกิดขึ้นได้ทั้งหมด
จะได้แซมเปิลสเปซของผลรวมของแต้มบนลูกเต๋าทั้ง 2 ลูก คือ
{2,3,4,5,6,7,8,9,10,11,12}

ตัวอย่างที่ 4 ในกล่องใบหนึ่งมีลูกบอลสีแดง 2 ลูก สีขาว 1 ลูก ถ้าเราหยิบลูกบอลออกจากกล่องมา 1 ลูก โดยวิธีสุ่ม
1. จงหาแซมเปิลสเปซของสีของลูกบอลที่จะเกิดขึ้น
2. จงหาแซมเปิลสเปซของลูกบอลที่หยิบออกมาได้

วิธีทำ 1. เนื่องจากโจทย์สนใจสีของลูกบอลที่จะหยิบมาได้
ดังนั้นแซมเปิลสเปซของสีของลูกบอลที่หยิบได้คือ S= {สีแดง,สีขาว}
2. เนื่องจากโจทย์สนใจลูกบอลที่จะหยิบมาได้ ซึ่งมีทั้งหมด 3 ลูก
สมมติให้เป็น แดง1 แดง2 ขาว1 ดังนั้นแซมเปลิสเปซของลูกบอลที่หยิบออกมาคือ
S = {แดง1,แดง2, ขาว1}



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 16:30:26 By : lamaka.tor
 


 

No. 9

Guest


ที่ส่งโค้ดให้ไปคือ ให้เอาไปประยุกต์เอานะครับ ผมไม่ได้ทำให้ทั้งหมดอะ (โจทย์ของคุณคือ อยากได้ ลูป For ตามจำนวนต้องการ) ตามตัวอย่างด้านล่าง ครับ

ผมใส่ไป 100 โปรแกรมมันก้อวน 100 ลูป For ให้ครับ ส่วน Hello Word คุณต้องเปลี่ยนเป็นของคุณเองครับ

รูปธิบาย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 16:49:54 By : thaidevelopment.net
 


 

No. 10



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



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

ครับ
เด๋วจะลองดูอีกรอบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 17:02:12 By : lamaka.tor
 


 

No. 11



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



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

ลองแล้วเครื่องค้างไปเลยครับ
มันเยอะจัด
มีแบบอื่นอีกไม๊ครับ
หรือไม๊ก็โค๊ดถอดรหัส passRAR zip เลยก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-22 13:38:36 By : lamaka.tor
 


 

No. 12

Guest


5555+ ผมว่ามันคงจะช้าอยู่แหละครับ เพราะว่ามันกิน Process เยอะ ขนาดของผม 8 GB ยังอืดเลยครับ มันมีเยอะครับ Algorithm สำหรับการเข้ารหัส การถอดรหัส แล้วแต่คุณจะเลือกใช้ Algorithm แบบไหนครับ อย่างที่ผมใช้อยู่ตอนนี้ เป็นของ MD5 ลองหาใน Google ดูได้ครับ วิธีการอาจจะซับซ้อน แต่ไม่กิน Process ส่วนใหญ่แล้ว องค์กรใหญ่ที่เขาทำกัน ก็จะนำพวกนี้แหละครับ มาดัดแปลง Algorithm เอาครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-22 13:54:21 By : thaidevelopment.net
 


 

No. 13



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



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

ตอบความคิดเห็นที่ : 12 เขียนโดย : thaidevelopment.net เมื่อวันที่ 2015-01-22 13:54:21
รายละเอียดของการตอบ ::
ว่าจะหัดถอดรหัส winrar ครับ
โปรแกรมที่โหลดมามันทำงานช้า ก็เลยว่าจะเขียนเองซะงั้น
ความคิดแบบบ้านๆของผมก็คือ
เก็บ pass ไว้ใน database
แล้วก็ดึงออกมาถอดเลย
โดยกะว่าจะใช้ thread ในการถอดซัก 500 - 1000 thead
แต่ตอนนี้จะเอา pass เข้า database ยังไม่ได้เลยอ่าครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-22 14:14:44 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

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