ReadyPlanet.com
dot dot dot
dot
สำหรับสมาชิก
ชื่อผู้ใช้ :
รหัสผ่าน :
เข้าสู่ระบบอัตโนมัติ :
bullet ลืมรหัสผ่าน
dot
dot
dot
bulletหลักโหรโดนใจ
bulletหลักโหร-ศิวเมษ
bulletโหรา-ประวัติศาสตร์
bulletโหรา-ไอที
bulletโหรา-โปรแกรม
bulletDemo/Freeware
bulletโปรแกรม Virgo07
bulletDelphi กับ Swiss Ephemeris
bulletผูกดวงออนไลน์กับ Astrotheme.com
bulletพิกัดภูมิศาสตร์ ประเทศไทย
bulletwebboard ผลัดกันเขียนเวียนกันอ่าน
dot
dot
bulletกำพล ภาระโภชน์ (Astroman) - ยูเรเนียน
bulletโรงเรียนโหราศาสตร์ไทยมาตรฐาน
bulletอดิเทพ ศรีรัตนไพฑูรย์ - ยูเรเนียน
bulletอาคม ชูจันทร์ - ยูเรเนียน, ลายมือ
bulletชาญชัย เดชะเสฏฐดี (ผู้ร่วมเขียนบทความ)
bulletอาจารย์ ธนกร ตันติถาวร - ยูเรเนียน
dot
dot
bulletประวัติ
bulletการติดต่อ
bulletภาพยนตร์ประวัติศาสตร์
bulletRojnChin's Channel (YouTube)
bulletRojnChin's Blog
bulletร้านค้าออนไลน์
dot
dot
bulletโรงเรียน โหราศาสตร์ ฮัมบูร์ก ประเทศเยอรมัน
bulletAstro.com
bulletพยากรณ์ดอทคอม
bulletมูลนิธิสมาคมโหรแห่งประเทศไทยฯ
bulletโหราศาสตร์แนวอาจารย์จรัญ พิกุล
bulletโหรายูเรเนียนดอทคอม
bulletบ้านฮวงจุ้ย
bulletวารสารโหราเวสม์
bulletUranianSoft.com
bulletดูดวงกับ GooSiam.com
bulletMyHora.com: ดูดวงยูเรเนียนออนไลน์
bulletAstro-Seek.com: Full Moons & New Moons
bulletAstro-Seek.com: Aspect Search Engine
bulletLatitude&Longitude เมืองต่างๆ ทั่วโลก
bulletIELTS British Council
bulletIELTS IDP
bulletMUIC
bulletรวม Link เว็บอื่นๆ ที่น่าสนใจ
bulletแผนผังเว็บไซต์ (Site Map)






ภาพยนตร์ประวัติศาสตร์


CURRENT MOON


dot
Delphi กับ Swiss Ephemeris article
วันที่ 04/08/2012   11:39:51

 

 

 

บทความนี้ อาจเรียกว่าเป็นความคืบหน้าล่าสุดของบทความเรื่อง “ว่าด้วย SourceCode โปรแกรมโหราศาสตร์” ณ ช่วงการประชุมเอเปค ก็ว่าได้ คือหลังจากที่ผมพบเว็บไซต์ที่มี SourceCode โปรแกรมโหราศาสตร์ คือ http://www.astro.com/ และดาวน์โหลดไฟล์หลักๆ ที่เกี่ยวกับการเขียนโปรแกรมมาแล้ว ก็ยังไม่มีโอกาสได้ตรวจสอบไฟล์เหล่านั้น จนกระทั่งช่วงวันหยุดยาวในเดือนตุลาคม 2546 นี้เอง

Swiss Ephemeris นี้เป็นเพียงส่วนประกอบหลักหรือโมดูลหนึ่งสำหรับนำไปสร้างโปรแกรมโหราศาสตร์ที่สมบูรณ์ สร้างขึ้นด้วย ภาษาC แต่เนื่องจากโมดูลที่จัดทำนี้อยู่ในรูปของไฟล์ DLL คือไฟล์ swedll32.dll ผู้พัฒนาโปรแกรมที่ใช้ภาษาคอมพิวเตอร์อื่นๆ ก็สามารถนำโมดูลนี้ไปใช้ได้โดยไม่จำเป็นต้องมีความรู้ ภาษาC แต่อย่างใด และไม่ว่าจะเขียนโปรแกรมด้วยภาษาใด ก็ไม่ต้องเริ่มจากศูนย์ เพราะสามารถนำคำสั่งสำเร็จรูปที่ทำไว้ใน swedll32.dll มาเรียกใช้ในการคำนวณดาว ณ วันเวลาที่ต้องการได้ทันที

ในวงการการเขียนโปรแกรมไทย เคยมีคำกล่าวแบบติดตลกว่า ภาษาC นั้นมีความลึกลับพอๆ กับภาษาขอม แม้จะได้รับการยกย่องว่าเป็นภาษาที่มีประสิทธิภาพรองจากภาษาเครื่องและแอสแซมบลีก็ตาม ขณะที่ภาษา BASIC แม้จะมีความง่าย และอยู่คู่กับนักเขียนโปรแกรมกลุ่มใหญ่รวมถึงนักเขียนโปรแกรมโหราศาสตร์มานาน แต่ก็ดูค่อนข้างฉาบฉวย และโปรแกรมที่คอมไพล์ได้ในรูปไฟล์ EXE มักจะต้องพึ่งโมดูลของโปรแกรมภาษา BASIC อยู่ตลอด ภาษา Pascal ของบริษัทบอร์แลนด์ ซึ่งปัจจุบันพัฒนาขึ้นมาเป็นภาษาสำหรับเขียนโปรแกรมบนวินโดว์สเช่นเดียวกับ C และ BASIC ในชื่อว่า Delphi นั้น เป็นทางเลือกที่น่าสนใจ เพราะตัวภาษามีความใกล้เคียงภาษาอังกฤษพื้นฐาน ความสามารถแบบ OOP ทำให้มีความลึกซึ้งที่เข้าถึงได้มากกว่าความลึกลับชวนปวดหัวแบบ ภาษาC ความประทับใจในภาษาโปรแกรมนี้ทำให้ผมเลือกใช้ภาษา Pascal ในการเขียนโปรแกรมมาตลอด ตั้งแต่รุ่น Turbo Pascal บน DOS มาจนถึง Delphi และเชื่อว่าอีกหลายท่านน่าจะประทับใจในภาษาโปรแกรมนี้เช่นกัน แต่ถ้าท่านยังมีใจรัก BASIC หรือ C จริงๆ ก็หวังว่าตัวอย่างจาก Delphi ที่จะเสนอนี้จะพอเป็นแนวทางให้ท่านได้เช่นกัน

ก่อนที่จะลืมต้องขอบอกก่อนว่า ในการดาวน์โหลด Swiss Ephemeris มานี้ ผู้พัฒนามีเงื่อนไขว่า ท่านจะต้องนำ Swiss Ephemeris มาพัฒนาโปรแกรมใช้เองโดยไม่จำหน่ายจ่ายแจกใคร หรือหากจะทำโปรแกรมแจกฟรีจะต้องเปิดเผย SourceCode ด้วยตามหลัก OpenSource เหมือนระบบปฏิบัติการ Linux หากท่านจะใช้เขียนโปรแกรมขายหรือแจกฟรีโดยไม่เปิดเผย SourceCode ท่านจะต้องจัดซื้อ Swiss Ephemeris เวอร์ชันที่เป็น Commercial ในราคาหลักหมื่นบาทเลยทีเดียว

ไฟล์ที่ท่านจะต้องไปดาวน์โหลดมานั้น ตัวหลัก คือ sweph.zip หากจะให้โปรแกรมสมบูรณ์โดยเฉพาะการคำนวณดาวเคราะห์น้อยจะต้องดาวน์โหลดไฟล์อื่นอีกนับเป็นสิบๆ เมกะไบต์ แต่ยังไม่จำเป็นในที่นี้ เมื่อขยายไฟล์ sweph.zip ออกมาแล้วจะได้ไฟล์ต่างๆ ทั้งที่เป็น SourceCode ของตัวโมดูลและ SourceCode ของภาษาโปรแกรมต่างๆ ไฟล์ที่เกี่ยวข้องกับนักเขียนโปรแกรม Delphi ได้แก่ swedll32.dll ซึ่งเป็นโมดูลหลักในการคำนวณที่จะต้องเขียนโปรแกรมเรียกใช้ขึ้นมา และกลุ่มไฟล์ที่ใช้ในการเขียนโปรแกรมด้วย Delphi ได้แก่ swedel_2.dpr, swedel_2.cfg, swedel_2.dof, swedel_2.opt, swedel_2.res, sample2.pas, sample2.dfm, sample2.dcu,และswe_de32.pas :ซึ่งไฟล์ไหนเป็นไฟล์ไหนทำอะไร ผู้ที่ศึกษา Delphi คงทราบดี และยังมีไฟล์ตัวอย่างเพิ่มเติมใน zip ชื่อ more_del.zip ซึ่งประกอบไปด้วยไฟล์สำหรับเขียนโปรแกรมด้วย Delphi ซึ่งใช้ชื่อไฟล์เหมือนกับในกลุ่มแรก เพื่อไม่ให้สับสน ผมจะขอเรียกไฟล์สำหรับ Delphi ที่แตกออกมาจาก sweph.zip โดยตรงว่า “ตัวอย่างแรก” และกลุ่มไฟล์ที่ต้องแตกออกมาจาก more_del.zip อีกทีหนึ่งว่า “ตัวอย่างเพิ่มเติม”

ทั้งตัวอย่างแรกและตัวอย่างเพิ่มเติมนี้ เขียนโดยนาย Robert Amlung เป็นการสาธิตการเขียนโปรแกรมโดยเรียกใช้คำสั่งจาก swedll32.dll มาใช้ใน Delphi ในการคำนวณดาวและเรือนชะตาแบบต่างๆ โดยตัวอย่างแรกจะแสดงผลในรูปองศาและจุดทศนิยมขององศา ส่วนตัวอย่างเพิ่มเติมจะแสดงผลเป็นองศาราศีลิบดาแบบที่นักโหราศาสตร์ใช้ และมีการแบ่ง Procedure ย่อยๆ ตามหน้าที่อย่างชัดเจนขึ้น

เป็นที่น่าสังเกตว่าโปรแกรมตัวอย่างทั้งสองได้แสดงการเรียกใช้เฉพาะฟังก์ชันในการผูกดวงตามปกติ โดยที่ในเอกสารประกอบยังมีฟังก์ชันที่น่าสนใจอื่นๆ เช่น กำหนดการคำนวณเป็นระบบนิรายนะด้วยอยนางศแบบต่างๆ การหาวันเกิดคราส เป็นต้น ซึ่งจะเป็นการบ้านสำหรับการเขียนโปรแกรมในระดับก้าวหน้าต่อไป

อีกการบ้านหนึ่งที่เราอาจลองทำกันเล่นๆ ดูก่อน คือนาย Robert Amlung แกเป็นฝรั่งแถบยุโรป ก็ย่อมจะทำตัวอย่างโปรแกรมสำหรับฝรั่งใช้ ทีนี้เราจะลองแก้โปรแกรมตัวอย่างแรกให้เป็นโปรแกรมที่ป้อนวันที่และเวลาตามแบบไทย และกำหนดสถานที่ Default เป็นกรุงเทพฯ ดู

ใน SourceCode ไฟล์ sample2.pas มีที่ต้องแก้ 3 จุด คือ

บรรทัดที่ 298
iyear := StrToInt(year.Text);
แก้เป็น
if (imonth<4) and (StrToInt(year.Text)<2484) then iyear := StrToInt(year.Text)-542 else iyear := StrToInt(year.Text)-543;
บรรทัดที่ 309
tjd := swe_julday(iyear, imonth, iday, dhour, 1);
แก้เป็น
tjd := swe_julday(iyear, imonth, iday, dhour, 1)-7/24;
บรรทัดที่ 337
if (rflag <> iflag) then outfld.Lines.Add(StrPas(serr));
ลบทิ้งทั้งบรรทัดหรือแปลงเป็นหมายเหตุด้วยการเติม // ข้างหน้า ตรงนี้ไม่เกี่ยวกับวันเดือนปี แต่เป็นการปิดการแสดง Error เนื่องจากการที่เราไม่ได้ดาวน์โหลดไฟล์เบ็ดเตล็ดที่ใช้คำนวณพวกดาวเคราะห์น้อยมาด้วย
นอกจากนี้ที่ฟอร์ม sample2.dfm ในช่องป้อนข้อมูลแลตติจูดและลองกิจูดของที่เกิด ต้องแก้ข้อมูล 6 ช่อง ดังนี้
lon_deg แก้ค่าจาก 8 เป็น 100
lon_min แก้ค่าจาก 33 เป็น 30
lat_deg แก้ค่าจาก 47 เป็น 13
lat_min แก้ค่าจาก 23 เป็น 45

ลองรันโปรแกรมแล้วป้อนวันที่เดือนพ.ศ.และเวลาแบบเมืองไทยดู

อีกจุดหนึ่งที่นักโหราศาสตร์ยูเรเนียนควรลองทำดูคือ

บรรทัดที่ 334
for i := SE_SUN to SE_TRUE_NODE do
แก้เป็น
for i := SE_SUN to SE_POSEIDON do if (i<=SE_TRUE_NODE) or (i>=SE_CUPIDO) then

เมื่อรันโปรแกรมดูก็จะได้สมผุสดาวครบทุกดวงที่ใช้ในโหราศาสตร์ยูเรเนียน

เท่านี้คงพอเป็นแนวทางสำหรับผู้ใฝ่รู้ทางโหราศาสตร์และการเขียนโปรแกรมทุกท่าน รายละเอียดอื่นๆ ทั้งในส่วนที่ไม่จำเป็นจะกล่าวในที่นี้และที่เกินกว่าสติปัญญาผมจะอธิบายได้ ขอให้ศึกษาเพิ่มเติมจากเว็บไซต์และไฟล์เอกสารต่างๆ ที่ดาวน์โหลดมานะครับ

 


เพิ่มเติม 18 มิถุนายน 2547

ตอนที่ผมเขียนบทความส่วนแรกมัวแต่ดูไฟล์ของคุณ Robert Amlung ที่จริงทาง astro.com เขาได้ให้ไฟล์ยูนิตสำหรับ Delphi ที่สามารถเรียกใช้ Swiss Ephemeris ได้เกือบสมบูรณ์ เขียนโดยคุณ Sarah Ashton ครับ ใครที่ถนัด Delphi ลองหาดูนะครับ และไม่ว่าถนัดภาษาอะไร หากติดขัด ไม่เข้าใจ หรือทำโปรแกรมได้เป็นรูปเป็นร่างแล้วต้องการเผยแพร่ หรือต้องการแลกเปลี่ยนความรู้อะไรที่เกี่ยวเนื่อง เชิญติดต่อตามที่อยู่ที่ให้ไว้ หรือส่งข้อความโดยแบบฟอร์มข้างล่างครับ

เพิ่มเติม 15 ธันวาคม 2549

Source Code ตัวอย่างโปรแกรมที่คำนวณสมผุสดวงยูเรเนียน


สินค้าที่เกี่ยวข้องจาก ร้านค้าออนไลน์

 

 

 

 




โปรแกรมโหราศาสตร์

โปรแกรมโหราศาสตร์ยูเรเนียน Virgo07 วันที่ 08/10/2010   07:16:55 article
Virgo06 โปรแกรม โหราศาสตร์ยูเรเนียน วันที่ 04/03/2018   22:26:48 article
Demo/Freeware วันที่ 23/10/2017   19:37:57
Chayanan โปรแกรม โหราศาสตร์ไทย มาตรฐาน ตามแนวทางอาจารย์ ส. ไชยนันทน์ วันที่ 15/06/2009   21:43:10 article
ก้าวแรกการวาดภาพจานคำนวณให้ปรับขนาดตามหน้าต่างโปรแกรม (Delphi) วันที่ 05/08/2012   15:42:04
สั่ง Printer วาด จานคำนวณ ด้วย Delphi วันที่ 04/08/2012   11:34:50 article
คำนวณ ดวงไทยนิรายนะ ด้วย Swiss Ephemeris วันที่ 04/08/2012   11:36:42 article
จุดประสงค์ของ Virgo Project วันที่ 04/08/2012   11:37:19 article
Open Source ทางเลือกใหม่ในการพัฒนา โปรแกรม โหราศาสตร์ (?) วันที่ 04/08/2012   11:41:02 article
สูตรการคำนวณ จันทร์ดับ – จันทร์เพ็ญ (New Moon – Full Moon) วันที่ 04/08/2012   11:43:18 article
แนะนำ Lazarus ผู้จะมาสวมรอย Delphi (?) วันที่ 04/08/2012   11:44:45 article
รวมข้อข้องใจ (FAQ) เกี่ยวกับ โปรแกรมโหราศาสตร์ ของนายโรจน์ วันที่ 04/08/2012   11:45:33 article
โปรแกรม โหราศาสตร์ ยูเรเนียน Virgo05 วันที่ 15/06/2009   21:56:17 article
โปรแกรม โหราศาสตร์ ยูเรเนียน Virgo04 วันที่ 15/06/2009   21:56:45 article
ว่าด้วย Source Code โปรแกรม โหราศาสตร์ วันที่ 04/08/2012   11:47:05 article
โปรแกรมตัวอย่าง การวาดและหมุน จานคำนวณ 360 องศา (Delphi) วันที่ 15/06/2009   22:00:22



แสดงความคิดเห็น
ความคิดเห็น *
ผู้แสดงความคิดเห็น  *
อีเมล *
ไม่ต้องการให้แสดงอีเมล



Copyright © 2010 All Rights Reserved.
| โหรา-ประวัติศาสตร์ | โหรา-ไอที | หลักโหรโดนใจ | บทความสมทบ | โหรา-โปรแกรม | ผู้จัดทำ/ผู้สนับสนุน | Site Map |

Custom Search


ติดต่อนายโรจน์ E-mail: webmaster@rojn-info.com
หรือ Mobile: 08-1697-3098
(อาจไม่สะดวกรับสายในบางเวลา)
ยังไม่เปิดสอนและไม่รับพยากรณ์เป็นส่วนตัว
กรุณาอย่าใช้โทรศัพท์หรือส่งอีเมล์มาขอดูดวง เพราะไม่มีเวลาตอบ



มูลนิธิสมาคมโหรแห่งประเทศไทยในพระสังฆราชูปถัมภ์ โหราศาสตร์แนว อ.จรัญ พิกุล - AstroClassical.com HoraUranian.com ดูดวง
โหราศาสตร์กับเครื่องประดับ บ้านฮวงจุ้ย (fengshuihut.com) ตลาดวิชาฮวงจุ้ยและดวงจีน ผูกดวง/ยูเรเนียนออนไลน์ (MyHora.com)

รวมลิงค์ : เว็บอื่นๆ ที่น่าสนใจ
eXTReMe Tracker