के साथ मुझे विजुअल बेसिक 6 द्वारा उत्पादित विरासत डेटाबेस फ़ाइल से डेटा पढ़ने की आवश्यकता है। विरासत सॉफ्टवेयर से मैंने पाया कि फ़ाइल पुट और पुट फ़ंक्शन के पैरामीटर के रूप में रिकॉर्ड की तरह गुजरना।पढ़ना (फाइल सिस्टम.फाइलगेट के साथ) वीबी 6 रिकॉर्ड फ़ाइल (पुट के साथ लिखित) सी #
Type THE_TYPE
FIELD_1 As Single
FIELD_2 As String * 20
FIELD_3(1 To 50) As Single
FIELD_4(1 To 10) As String * 1
End Type
मेरे प्रकार बड़े और अधिक जटिल हैं, लेकिन मैं THE_TYPE में अपने प्रोजेक्ट में मैं अलग अलग परिभाषा डाल दिया है: इन संरचनाओं इस प्रकार के रूप में परिभाषित कर रहे हैं। मैंने पाया है कि माइक्रोसॉफ्ट आयात करना। विज़ुअलबासिक मुझे फ़ाइल लिखने के लिए उपयोग किए जाने वाले वीबी कार्यों तक पहुंच प्रदान करता है, इसलिए मैं फ़ाइल को सिस्टम खोल रहा हूं और फाइल सिस्टम को खोल रहा हूं। ओपनफाइल() और .CloseFile(); अब मैं अंत में निहित डेटा पढ़ने की जरूरत है और मूल कार्य के बाद से किया गया था:
Public RecordContent As THE_TYPE
[...]
Get #1, recordNumber, RecordContent
मैं मैं() Microsoft.VisualBasic.FileSystem.FileGet की तरह कुछ इसी तरह, उपयोग कर सकते हैं लगता है। तो सवाल यह है कि, मैं एक कंटेनर को कैसे परिभाषित कर सकता हूं, मुझे लगता है कि मूल VB6 प्रकार "THE_TYPE" के समान एक वर्ग है? मैं इस वस्तु को सही ढंग से भरने के लिए .FileGet() को कैसे कॉल करूं?
जबकि जीएसआरआर ने आपको सही दिशा में इंगित किया हो सकता है, जानते हैं कि 'पुट' 'रैंडम' और 'बाइनरी' के 'ओपन' मोड के बीच 'पुट' के तरीके में बड़े अंतर हैं। Http://msdn.microsoft.com/en-us/library/aa266212(v=VS.60).aspx और http://msdn.microsoft.com/en-us/library/aa266177(v=vs देखें। 60) विवरण के लिए .aspx। मैं इसे ऊपर लाता हूं क्योंकि यदि 'स्ट्रिंग' और सरणी सदस्य निश्चित आकार के हैं, तो मुझे आश्चर्य हुआ कि वीबी 6 ऐप ने 'ओपन ... बाइनरी' मोड का उपयोग किया था। – rskar
यह रैंडम मोड – ccalboni
+1 में था 'माइक्रोसॉफ्ट.विज़ुअल बेसिक' आयात करने और 'फाइल सिस्टम' का उपयोग करने के लिए। आप आश्चर्यचकित होंगे [कैसे] (http://stackoverflow.com/questions/7290976/vb6-how-are-binary-files-encoded-using-put-statement) [अक्सर] (http://stackoverflow.com/प्रश्न/88860 9 6/कनवर्टिंग-क्विक-बेसिक-टू-वीबी-नेट-यादृच्छिक-एक्सेस-फाइल) लोग उनको अनदेखा करते हैं! – MarkJ