สำหรับท่านใดที่ลง XAMPP บน Ubuntu หรือ Linux 64 bits แล้วไม่สามารถสั่ง start ได้ จะต้องลง package เพิ่มนะครับ วิธีลงก็ตามนี้เลยครับ
สำหรับสาย Debian
sudo apt-get install ia32-libs
หรือหากเป็นสาย Redhat หรือ CentOS
sudo yum install glibc*
สำหรับท่านใดที่ลง XAMPP บน Ubuntu หรือ Linux 64 bits แล้วไม่สามารถสั่ง start ได้ จะต้องลง package เพิ่มนะครับ วิธีลงก็ตามนี้เลยครับ
สำหรับสาย Debian
sudo apt-get install ia32-libs
หรือหากเป็นสาย Redhat หรือ CentOS
sudo yum install glibc*
เครื่องหมายเท่ากับ(=) มีหน้าที่กำหนดค่า address ไม่ใช่กำหนดค่าในทุกกรณี
เป็นต้นว่ากำหนด a=b หมายถึง ให้ตัวแปร a ชี้ address ไปที่ตำแหน่งของตัวแปร b ดังนั้นตัวแปร a กับ b เป็นตัวเดียวกัน
โดยโปรแกรมจะไม่ไม่สร้าง object ใหม่ให้หากเราไม่กำหนด ในกรณีที่ตัวแปรอื่นมีค่าซ้ำกับอีกตัวแปรหนึ่ง มันจะชี้ไปที่เดียวกันเช่น
a=3
b=4
c=a+1
จากคำสั่งข้างต้นจะได้ว่า b จะมี address เท่ากับ c เพราะค่าเท่ากัน
แล้วทำไมกรณีที่สั่ง
a=3
b=a
a=4
ทำไม b ถึงไม่เป็น 4 เพราะตามลำดับจะทำจากขวามาซ้ายคือ สร้างตัวเลข 4 ใน ram ก่อน(หรือหาจากใน ram) แล้วให้ a ชี้ไปตำแหน่งนั้น โดยไม่ไปยุ่งกับตัวแปร b ดังนั้นค่า b จึงชี้ที่เดิม คือ 3
AppLocale เป็นโปรแกรมที่ไว้จำลองสภาพแวดล้อมของ Windows ให้เป็นเหมือน Windows ของประเทสอื่น ส่วนมากมักใช้กับโปรแกรมหรือเกมส์ของญี่ปุ่น ที่บางทีมันจะล็อคประเทศไม่ให้เปิด หรือไม่ก็ไม่สามารถอ่านภาษาญี่ปุ่นได้อย่างถูกต้อง เลยต้องใช้โปรแกรมนี้ช่วย
สำหรับท่านที่หลงเข้ามา เราขอแนะนำโปรแกรมที่ใช้แทน AppLocae ได้ และยังช่วยดึงข้อความจากเกมส์ไปใส่ Translation Service ต่างๆ เช่น Google Translate แล้วนำมาแสดงให้ท่านอ่านอัตโนมัติ เพื่ออรรถรสในการเล่มเกมส์ โปรแกรมนั้น คือ Visual Novel Reader ครับ สามารถกดที่ลิงค์เพื่อเข้าดูได้เลยครับ
ในกรณีที่เป็น Windows XP ให้ทำข้อ 1 แล้วข้ามไปข้อ 4
จากรูป เกมส์ PricessMaker 4 นะครับ ก่อนใช้ตัวหนังสือเป็นตัวยึกยือ ไม่สามารถอ่านได้เลยนะครับ
แต่หลังใช้เราจะเห็นว่าเป็นภาษาญี่ปุ่นที่สามารถอ่านได้ปกติ(ถ้าอ่านออกนะครับ)
วันนี้เรามาคุยกันเรื่องการเขียนโปรแกรม เราควรเริ่มจากภาษาอะไรดีนะครับ โดยในปัจจุบันภาษาที่ใช้เขียนโปรแกรมมีอยูมากมายเช่นเวลาเขียนโปรแกรมทั่วไป ก็ C, C++, C#, Java, Visual Basic, Delphi และอื่นๆเป็นต้น ถ้าเขียนบนใช้บนเว็บก็มีพวก PHP, ASP, Python, Ruby, Javascript เป็นต้น
โดย ทั่วไปถ้าเราไปถามตามเว็บบอร์ดหรือใครๆมักได้รับคำแนะนำว่าควรเริ่มจากภาษา C เพราะในปัจจุบันภาษาใหม่ๆ มักจะมีรูปแบบ syntax เป็น C-Style คือมีความคล้ายคลึงภาษา C ดังนั้นเมื่อเราศึกษาภาษา C จนเชี่ยวชาญแล้วการไปเรียนต่อภาษาอื่นจึงไม่ใช่เรื่องยาก ยกเว้น Visual Basic กับ Delphi ที่ 2 ภาษานี้จะเหมือนกัน แต่ไม่เหมือนภาษา C ซึ่งผมเห็นว่าไม่จำเป็นเท่าไหร่นัก เพราะภาษา C นั้นค่อนข้างจะยุ่งยากพอสมควร ซึ่งภาษาใหม่ๆที่พัฒนามามีการพัฒนาให้ลดการยุ่งยากในเรื่องนี้ไปได้ เช่นตัวแปรชนิด String(สายอักขระ หรือข้อความต่างๆ) ที่มีใน Java, C++, C# แต่ใน C ไม่มี มีแต่ตัวแปรชนิด char(ตัวอักษร 1 ตัว) แต่ประกาศแบบ Array(แถวลำดับหรืออะไรหว่า ลืมชื่อภาษาไทย แต่ลักษณะคล้ายๆสายอักขระ แต่จำกัดขนาด) ซึงยุ่งยากต่อการใช้ เพราะมีการจำกัดขนาดเช่น เราประกาศตัวแปรรับได้แค่ 200 ตัว แต่ผู้ใช้ดันใส่มา 300 ตัว โปรแกรมก็มีโอกาศพังสูง ซึ่งภาษาใหม่ๆได้มีการแก้ปัญหานี้ด้วยตัวแปร String
แต่การเรียนภาษา C มีข้อดีคือ ฝึกกระบวนการคิดได้ดี เช่นการเขียนโปรแกรมหาคำๆหนึ่งในข้อความที่ได้รับเข้าไป โดยสมมุติว่าคำที่หามีขนาดไม่เกิน 10 ตัว และข้อความทั้งหมดมีขนาดไม่เกิน 200 ตัว
ภาษา C# เขียนดังนี้
using System; namespace C_TEST{ class Program{ public static void Main(string[] args){ string input; string find; Console.Write("String: "); input = Console.ReadLine(); Console.Write("Find: "); find = Console.ReadLine(); if(input.IndexOf(find) > -1){ Console.WriteLine("Found."); }else{ Console.WriteLine("Not found."); } } } }
แต่ถ้าเป็นภาษา C จะเขียนแบบนี
#include <stdio.h> int my_strlen(char *str){ int i = 0; while(str[i] !='\0'){ //ใช้ str[i] == 0 ก็ได้ i++; } return i; } int main(){ char str[201]; //ใช้กี่ตัว ต้องประกาศเพิ่ม 1 ตัว เพราะช่องสุดท้ายจะใช้เก็บ \0 เพื่อบอกว่าจบ String char find[11]; int len_str; int len_find; int i,j; int found = 0; int bool_in_loop = 0; printf("String: "); gets(str); printf("Find: "); gets(find); len_str = my_strlen(str); len_find = my_strlen(find); //ใช้ strlen ของ string.h ก็ได้ เป็นการนับว่ามีกี่ตัวอักษร for(i = 0;i<len_str;i++){ // วนให้ครบทุกตัว bool_in_loop = 1; //กำหนดให้ผ่านเงื่อนไข for(j=0;j<len_find;j++){ // วนเพื่อตรวจว่ามีคำที่หาไหม if(i+j >= len_str){ //ตรวจว่าไม่เกินความยาวของ String หลัก bool_in_loop = 0; //ถ้าเกิน ไม่ผ่าน break; //จบ Loop นี้ } if(str[i+j] != find[j]){ //ตรวจว่าตรงกันไหม bool_in_loop = 0; //ถ้าไม่ตรง กำหนดให้ไม่ผ่าน break; //จบ Loop นี้ } } if(bool_in_loop == 1){ //ตรวจว่าผ่านไหม found++; //ถ้าผ่าน ให้เพิ่มตัวนับ } } if(found == 0){ //ถ้าเจอไม่เจอ printf("Not found."); }else{ //ถ้าเจอ printf("Found."); } return 0; }
จะเห็นได้ว่า Code ยาวและยุ่งยากกว่ามาก ซึ่งถ้ามองในแง่การใช้ถือว่าเสียเวลาเขียน แต่ในแง่ของการฝึก เป็นการฝึกให้คิดได้ดีพอสมควร ต้องใช้ loop 2 ชัั้นเพื่อตรวจเลยทีเดียว แถมยังต้องกำหนดขนาดของ char array ด้วย
ดังนั้นผมเห็นว่าการที่เราจะเลือกเรียนภาษาใดๆ ควรเลือกให้เหมาะสมกับงานไปเลยดีกว่าครับ เช่น
ส่วนภาษา Visual Basic, Delphi นั้นไม่แนะนำให้เรียนครับ เพราะมันไม่ค่อยคล้ายภาษาอื่นๆ เวลาไปเรียนรู้ใหม่มันจึงยาก
อนึ่ง การเขียนโปรแกรมบน iOS (พวก iPhone, iPad) นั้นต้องใช้ภาษา Objective-C ซึ่งผมได้ยินมาว่า เหมือนต้องเรียนใหม่หมด คิดว่าไม่คล้าย C-Style แต่เท็จจริงเป็นอย่างไรไม่ทราบ
โปรด อย่าติดต่อทาง FB ทาง Message นะครับ ถ้าไม่ได้ Add friend ผมไม่เห็นว่ามีข้อความมา แล้วผมไม่รับเพื่อนหากไม่มีเพื่อร่วมกันอย่างน้อย 10 คน ยกเว้นช่วงที่นั้นผมเพิ่งเข้าค่ายหรือมีกิจกรรม ถ้ามีข้อสงสัย comment ด้านล่างได้เลยครับ
เคยเป็นไหม เวลาเสียบแฟลชไดร์ใส่เครื่องแล้วไม่สามารถเปิดเข้าโฟลเดอร์ใดๆได้เลย หรือมันหายไปเลยทั้งๆที่ไม่ได้ลบ ถ้าหากคุณกำลังเป็นอยู่ขอบอกว่าแฟลชไดร์คุณโดนไวรัสเล่นงานเข้าแล้ว วันนี้เรามีวิธีแก้มานำเสนอ วิธีแก้นี้สามารถใช้กับไวรัสเกือบทุกตัวที่เป็นไวรัสซ่อนโฟลเดอร์อีกด้วย
ที่เปิดไม่ได้นั้นเป็นเพราะไวรัสซ่อนโฟลเดอร์จริงๆเอาไว้ จากนั้นสร้างทางลัด Shortcut ขึ้นมา โดยมันจะไปบังคับเปิดตัวไวรัส แต่เนื่องจากว่าที่อยู่ ของไวรัสเปลี่ยนไป เพราะเปลี่ยนเครื่อง ชื่อไดร์จึงเปลี่ยนไป ทำให้ไม่สามารถเปิดไวรัสได้ วิธีแก้คือทำให้โฟลเดอร์หายซ่อน แล้วลบทางลัดออก
หากจำไม่ได้ เรามีวิธีง่ายกว่านั้น คือทำเป็น Bat File เพื่อง่ายต่อการใช้งาน
del /F /Q *.lnk attrib -s -h -r /S /D *
หมาย ความว่าเครื่องคุณมีไวรัสแล้ว ทำให้เมื่อแสดงโฟลเดรอ์แล้วไวรัสแปลงกลับในทันทีครับ แต่ไม่ต้องห่วงเรามีวิธีนำเสนอ โดยทำตามขั้นตอนดังนี้
Option Explicit Dim objFSO,oWS,objFolder,objColFolders Dim tfolder,oLink Dim strPath Set objFSO = CreateObject("Scripting.FileSystemObject") Set oWS = WScript.CreateObject("WScript.Shell") Set objFolder = objFSO.GetFolder(".") Set objColFolders = objFolder.SubFolders For Each tfolder In objColFolders strPath = "./" & tfolder.Name & ".lnk" 'MsgBox strPath Set oLink = oWS.CreateShortcut(strPath) oLink.TargetPath = "%windir%/explorer.exe" oLink.Arguments = tfolder.Name oLink.Save Next MsgBox "Complete"