धाराओं, धाराओं, डेल्फी में प्रवाह

एक स्ट्रीम क्या है? TStream?

एक धारा जो इसका नाम बताती है: एक बहती हुई "डेटा की नदी"। एक स्ट्रीम में एक शुरुआत, एक अंत है, और आप हमेशा इन दो बिंदुओं के बीच में कहीं होते हैं।

का उपयोग करते हुए डेल्फी के TStream ऑब्जेक्ट्स आप विभिन्न प्रकार के स्टोरेज मीडिया से पढ़ सकते हैं या लिख ​​सकते हैं, जैसे कि डिस्क फाइल्स, डायनेमिक मेमोरी, और इसी तरह।

स्ट्रीम कंटेनर में क्या डेटा हो सकता है?

एक स्ट्रीम में आप अपनी पसंद के क्रम में कुछ भी शामिल कर सकते हैं। इस लेख के साथ उदाहरण परियोजना में, निश्चित आकार के रिकॉर्ड का उपयोग सादगी के उद्देश्यों के लिए किया जाता है, लेकिन आप चर-आकार के डेटा के किसी भी मिश्रण को एक धारा में लिख सकते हैं। हालांकि, याद रखें कि _you_ हाउसहोल्डिंग के लिए जिम्मेदार हैं। डेल्फी का कोई तरीका नहीं है कि "याद रखें" एक स्ट्रीम में किस तरह के डेटा हैं, या किस क्रम में हैं!

धाराएँ वर्सस अर्र्स

Arrays का एक निश्चित आकार होने का नुकसान होता है जिसे संकलित समय पर पता होना चाहिए। ठीक है, आप गतिशील सरणियों का उपयोग कर सकते हैं।

दूसरी ओर एक धारा, उपलब्ध स्मृति के आकार तक बढ़ सकती है, जो कि आज के सिस्टम पर काफी बड़ा आकार है, बिना किसी "हाउसहोल्डिंग" के।

instagram viewer

एक सरणी के रूप में एक धारा को अनुक्रमित नहीं किया जा सकता है। लेकिन जैसा कि आप नीचे देखेंगे, ऊपर और नीचे "चलना" बहुत आसान है।

धाराओं को एक साधारण ऑपरेशन में फाइलों से बचाया / लोड किया जा सकता है।

धाराओं के स्वाद

TStream धारा वस्तुओं के लिए आधार (सार) वर्ग प्रकार है। अमूर्त होने का मतलब है कि TStream को कभी भी इस तरह से उपयोग नहीं किया जाना चाहिए, लेकिन केवल यह वंशज रूपों में है। किसी भी प्रकार की जानकारी को स्ट्रीम करने के लिए, विशिष्ट डेटा और स्टोरेज जरूरतों के अनुसार एक वंशज वर्ग चुनें। उदाहरण के लिए:

  • TFileStream (फ़ाइलों के साथ काम करने के लिए)
  • TMemoryStream (मेमोरी बफर के साथ काम करने के लिए)
  • TStringStream (इन-मेमोरी स्ट्रिंग्स में हेरफेर के लिए)
  • TBlobStream (BLOB फ़ील्ड के साथ काम करने के लिए)
  • TWinSocketStream (सॉकेट कनेक्शन पर पढ़ने और लिखने के लिए)
  • ToleStream (पढ़ने और लिखने के लिए COM इंटरफ़ेस का उपयोग करने के लिए)

जैसा कि आप देखेंगे, TememoryStream और TFileStream उल्लेखनीय रूप से विनिमेय और संगत हैं।

नमूना परियोजना डाउनलोड करें!