|
|
|
C# WinApp อยากทราบวิธีวนลูปหลายลูปโดยสามารถกำหนดจำนวนลูปได้ครับ |
|
|
|
|
|
|
|
วนลูปจากข้อมูลแหล่งเดียวกันแบบนี้ ทำไมไม่ใช้เป็น do while ล่ะครับ
|
|
|
|
|
Date :
2015-01-15 17:26:16 |
By :
Programmer ด้อยปัญญา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนั้นมันได้แค่ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดันครับ
สมองบ้านๆของผมยังคิดไม่ออก
|
|
|
|
|
Date :
2015-01-21 11:12:30 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ตามโค้ดด้านล่างเลยครับ หลักการก็คือ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 7 เขียนโดย : thaidevelopment.net เมื่อวันที่ 2015-01-21 14:30:41
รายละเอียดของการตอบ ::
ไม่ได้อ่าครับ
คือผมอยากได้ประมาณว่า
{ "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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ส่งโค้ดให้ไปคือ ให้เอาไปประยุกต์เอานะครับ ผมไม่ได้ทำให้ทั้งหมดอะ (โจทย์ของคุณคือ อยากได้ ลูป For ตามจำนวนต้องการ) ตามตัวอย่างด้านล่าง ครับ
ผมใส่ไป 100 โปรแกรมมันก้อวน 100 ลูป For ให้ครับ ส่วน Hello Word คุณต้องเปลี่ยนเป็นของคุณเองครับ
|
|
|
|
|
Date :
2015-01-21 16:49:54 |
By :
thaidevelopment.net |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ
เด๋วจะลองดูอีกรอบ
|
|
|
|
|
Date :
2015-01-21 17:02:12 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วเครื่องค้างไปเลยครับ
มันเยอะจัด
มีแบบอื่นอีกไม๊ครับ
หรือไม๊ก็โค๊ดถอดรหัส passRAR zip เลยก็ได้ครับ
|
|
|
|
|
Date :
2015-01-22 13:38:36 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5555+ ผมว่ามันคงจะช้าอยู่แหละครับ เพราะว่ามันกิน Process เยอะ ขนาดของผม 8 GB ยังอืดเลยครับ มันมีเยอะครับ Algorithm สำหรับการเข้ารหัส การถอดรหัส แล้วแต่คุณจะเลือกใช้ Algorithm แบบไหนครับ อย่างที่ผมใช้อยู่ตอนนี้ เป็นของ MD5 ลองหาใน Google ดูได้ครับ วิธีการอาจจะซับซ้อน แต่ไม่กิน Process ส่วนใหญ่แล้ว องค์กรใหญ่ที่เขาทำกัน ก็จะนำพวกนี้แหละครับ มาดัดแปลง Algorithm เอาครับ
|
|
|
|
|
Date :
2015-01-22 13:54:21 |
By :
thaidevelopment.net |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|