ฉันกำลังบันทึกคลาสออบเจ็กต์ที่สร้างขึ้นเอง (ข้อมูลสตรีม) ลงในไฟล์
ฉันต้องสามารถโหลดเนื้อหาของไฟล์ลงใน TStringList เพื่อให้ฉันสามารถต่อท้ายบรรทัดใหม่ต่อท้ายไฟล์ จากนั้นจึงบันทึกการเปลี่ยนแปลง
สิ่งนี้ไม่ทำงานเนื่องจาก LoadFromFile ไม่สามารถแยกวิเคราะห์ไฟล์ได้อย่างถูกต้อง ฉันคิดว่าเพราะตัวละครตลกที่ Stream Saves to File เป็นและ TStringList คาดหวังข้อมูลที่เป็นข้อความธรรมดา
ฉันจะทำอย่างไรต่อไปนี้:
- อ่านไฟล์ Raw Binary ลงใน TStringList
- เพิ่มบรรทัดใหม่ของฉัน เช่น StringList1.Add(MyString);
- บันทึกไฟล์ Raw Binary อีกครั้ง
คำถามนี้เกี่ยวข้องกับคำถามอื่นที่ฉันถาม: บันทึกค่า CRC ในไฟล์ โดยไม่เปลี่ยนแปลงการตรวจสอบ CRC จริงใช่หรือไม่
นี่คือสิ่งที่ฉันพยายามทำ:
- คำนวณการตรวจสอบ CRC ของไฟล์สตรีมที่บันทึกไว้ของฉัน
- เพิ่มค่า CRC ที่ส่วนท้ายของไฟล์
- บันทึกไฟล์อีกครั้ง
เมื่อฉันพยายามเปิดไฟล์สตรีมของฉัน:
- กำหนดค่า CRC (ที่ส่วนท้ายของไฟล์) ให้กับตัวแปร
- ลบค่า CRC ออกจากไฟล์
- บันทึกไฟล์สตรีมเป็นไฟล์ชั่วคราวใหม่
- คำนวณและเปรียบเทียบ CRC ของไฟล์ชั่วคราว โดยที่ CRC เก็บไว้ในตัวแปร
- หาก CRC ของไฟล์ตรงกับค่า CRC ที่เก็บไว้ภายใน ฉันสามารถประมวลผลไฟล์ได้ตามปกติ
แต่ฉันไม่รู้วิธีอ่านหรือเขียนข้อมูลไบนารีดิบของไฟล์
ฉันจะขอบคุณถ้ามีคนสามารถช่วยและคำแนะนำให้ฉันได้ ขอบคุณ :)