डेल्फी 7 से 2010 तक कोड परिवर्तित करते समय मुझे एक अजीब समस्या है। इसे रिकॉर्ड के साथ करना है। नीचे परिभाषित रिकॉर्ड, डी 7 में आकार दिया गया है, 432 बाइट्स है, और डी 200 9 (और 2010) में यह 496 है। मुझे पता है कि एक आसान समाधान यह एक पैक रिकॉर्ड बनाना है, तो सभी संस्करण 426 बाइट्स तक आते हैं ... हालांकि, हमारे पास डेटा संग्रहित है जहां हमने रिकॉर्ड स्ट्रीम किया था और अब हम उन धाराओं को एक नई भाषा के साथ पढ़ने की कोशिश कर रहे हैं।200 9 (और 2010) की तुलना में डेल्फी 7 रिकॉर्ड आकार
TToTry = Record
a,b,c,d : Extended;
e,f,g,h : Extended;
i : String[15];
j,k,l,m,n,o,p,q,r,s,t : Array[1..3] of Extended; End;
इस मुद्दे की जांच में, मैंने एक और रिकॉर्ड बनाया, और, किसी भी कारण से, आकार समान हैं? रिकॉर्ड छोटा है, लेकिन इसमें समान डेटा प्रकार हैं। लेकिन यह भाषा के सभी संस्करणों में एक ही आकार में आता है।
TMyRecord = Record
Ext1 : Extended;
Ext2 : Extended;
Ext3 : Extended;
Ext4 : Extended;
Ext5 : Extended;
Ext6 : Extended;
Int1 : Integer;
Int2 : Integer;
char1 : AnsiChar;
char2 : AnsiChar;
MyString : String[15];
Arr1 : Array[1..3] of Extended;
Arr2 : Array[1..3] of Extended; end;
किसी के पास कोई अंतर्दृष्टि है कि एक रिकॉर्ड इतना अलग क्यों है, और दूसरा वही है? निश्चित रूप से डेल्फी में बाइट सीमा संरेखण के साथ कुछ करना है। लेकिन एक संस्करण से अगले संस्करण में इतनी तेजी से क्या बदल गया?
मुझे पता है कि डेल्फी रिकॉर्ड के लिए डिफ़ॉल्ट बाइट संरेखण हाल के संस्करण में बदल गया है (200 9 मुझे लगता है) लेकिन मुझे विवरणों के बारे में निश्चित नहीं है। –