การสร้างประเภทข้อมูลที่รันไทม์

ฉันมีสถานการณ์ที่ฉันได้รับบันทึกข้อมูลขณะรันไทม์ ประเภทข้อมูลของเซลล์ในบันทึกเป็นตัวแปรและทราบเฉพาะที่รันไทม์เท่านั้น ฉันจะจัดเก็บบันทึกเหล่านี้อย่างไร

เช่น

เมื่อรันไทม์ฉันได้รับ record_Info = "char[]","int16","int32" จากนั้นฉันได้รับ records = "abc" "2" "30", "def" "3" "40"

ฉันจะจัดเก็บสิ่งเหล่านี้ได้อย่างไรเมื่อฉันไม่สามารถเตรียมใช้งานประเภทพวกมันได้


person aks    schedule 01.09.2010    source แหล่งที่มา
comment
ต้องการรายละเอียดเพิ่มเติม: ประเภทของ record_info และระเบียน (เช่น โครงสร้าง รายการสตริง เวกเตอร์ของสตริง เพียงสตริงขนาดใหญ่ เป็นต้น) record_info เก็บเฉพาะประเภท POD หรือไม่ ถ้ามันสามารถเก็บประเภทอื่นได้คุณรู้จักมันล่วงหน้าหรือไม่?   -  person celavek    schedule 01.09.2010
comment
นี่อาจไม่ใช่ภาษาที่ดีสำหรับปัญหาประเภทนี้ ลอง Perl ดูครับ   -  person Martin York    schedule 01.09.2010


คำตอบ (1)


สมมติว่าคุณต้องการเก็บไว้ในไฟล์ เก็บข้อมูลประเภทไว้ที่จุดเริ่มต้นของไฟล์ (พูดเหมือนส่วนหัว) มีเพียงชุดประเภทที่กำหนดไว้ล่วงหน้าเท่านั้น ด้วยข้อมูลประเภทที่มีอยู่ คุณสามารถมีฟังก์ชันตัวแปลงเพื่อแปลงข้อมูลเป็นประเภทที่เกี่ยวข้องและจัดเก็บเป็นข้อมูลไบนารีในไฟล์ได้ หากคุณมีขีดจำกัดบนของข้อมูลตัวแปร (อักขระ []) ให้เก็บบันทึกข้อมูลคงที่ไว้ในไฟล์จะดีกว่า การเข้าถึงและแก้ไขจะง่ายกว่า

หากไม่มีขีดจำกัดบนของข้อมูลตัวแปร คุณจะต้องเก็บข้อมูลตัวแปรไว้ใน รูปแบบ TLV

person aeh    schedule 01.09.2010