में लाइन द्वारा सीएसवी फाइल लाइन को कैसे पढ़ा जाए मैं एक एएसपी पेज का उपयोग कर रहा हूं जहां मुझे एक सीएसवी फ़ाइल पढ़नी है और इसे डीबी टेबल "कर्मचारी" में डालना है। मैं TestReader का एक वस्तु बना रहा हूँ। सीएसवी फ़ाइल की पंक्तियों/अभिलेखों की संख्या को निष्पादित करने के लिए मैं लूप कैसे लिख सकता हूं जिसे पढ़ा जा रहा है?वीबीस्क्रिप्ट
उत्तर
फ़ाइल को स्वयं पार्स करने का प्रयास न करें, आप केवल खुद को सिरदर्द देंगे। न्यूलाइन और कॉमा पर विभाजित होने से इसके लिए काफी कुछ है।
आप ओएलईडीबी का उपयोग किसी रिकॉर्डसेट में फ़ाइल खोलने के लिए कर सकते हैं और इसे डीबी टेबल के रूप में पढ़ सकते हैं। कुछ ऐसा:
Dim strConn, conn, rs
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("path to folder") & ";Extended Properties='text;HDR=Yes;FMT-Delimited';"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
Set rs = Server.CreateObject("ADODB.recordset")
rs.open "SELECT * FROM myfile.csv", conn
while not rs.eof
...
rs.movenext
wend
मेरा vbscript जंगली है, तो वाक्यविन्यास को सत्यापित करें।
संपादित करें: हार्पो की टिप्पणी फ़ील्ड परिभाषाओं के बारे में एक अच्छी बात लाती है। Schema.ini फ़ाइल को परिभाषित करने से आप अपेक्षित फ़ील्ड की संख्या और डेटाटाइप को परिभाषित कर सकते हैं। देखें: आप schema.ini फ़ाइल को परिभाषित करके इसे संभाल सकते हैं। देखें: http://msdn.microsoft.com/en-us/library/ms709353.aspx
क्यों सीएसवी डालें नहीं? उदाहरण के लिए:
SELECT * INTO MyTable FROM OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Data Source=F:\MyDirectory;Extended Properties="text;HDR=No"')...
[MyCsvFile#csv]
से: http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.database.ado/2007-05/msg00057.html
- 1. वीबीस्क्रिप्ट
- 2. वीबीस्क्रिप्ट
- 3. वीबीस्क्रिप्ट
- 4. वीबीस्क्रिप्ट
- 5. वीबीस्क्रिप्ट
- 6. वीबीस्क्रिप्ट
- 7. वीबीस्क्रिप्ट
- 8. वीबीस्क्रिप्ट
- 9. वीबीस्क्रिप्ट
- 10. वीबीस्क्रिप्ट
- 11. वीबीस्क्रिप्ट
- 12. वीबीस्क्रिप्ट
- 13. वीबीस्क्रिप्ट
- 14. वीबीस्क्रिप्ट
- 15. वीबीस्क्रिप्ट
- 16. वीबीस्क्रिप्ट
- 17. वीबीस्क्रिप्ट
- 18. वीबीस्क्रिप्ट
- 19. वीबीस्क्रिप्ट पैरामीटर
- 20. मैं वीबीस्क्रिप्ट कंसोल एप्लिकेशन
- 21. वीबीस्क्रिप्ट - त्रुटि प्रबंधन
- 22. वीबीस्क्रिप्ट: फ़ंक्शन एक सरणी
- 23. वीबीस्क्रिप्ट, कोलन का उद्देश्य?
- 24. एएसपी/वीबीस्क्रिप्ट "गॉटचास"
- 25. एएसपी/वीबीस्क्रिप्ट - इंट() बनाम सीआईएनटी()
- 26. वीबीस्क्रिप्ट तर्क में डबल कोट्स
- 27. वीबीस्क्रिप्ट कार्यों में परिवर्तनीय दायरा
- 28. वीबीस्क्रिप्ट के लिए जेएसएफडल की तरह कुछ?
- 29. वीबीस्क्रिप्ट: जांचना कि उपयोगकर्ता इनपुट एक पूर्णांक
- 30. वीबीस्क्रिप्ट में GUID कैसे उत्पन्न करें?
सावधान: क्षेत्र गिनती पहली पंक्ति पर आधारित है। इसलिए यदि फ़ाइल में किसी भी बिंदु पर फ़ील्ड की संख्या बढ़ जाती है, तो आप अतिरिक्त फ़ील्ड कैप्चर नहीं कर सकते हैं। यह मेरे मामले में महत्वपूर्ण है, इसलिए मैंने अपना खुद का लुढ़काया (हालांकि वीबीस्क्रिप्ट में नहीं)। – harpo
यह सच है। आप schema.ini फ़ाइल (http://msdn.microsoft.com/en-us/library/ms709353.aspx) को परिभाषित करके इस सीमा से बच सकते हैं। यह आपको फ़ील्ड के डेटा प्रकारों को अर्हता प्राप्त करने की अनुमति देता है (डिफ़ॉल्ट रूप से, '0001' को '1' के रूप में पढ़ा जाएगा) –
फ़ोल्डर के पथ के बाद आपको सेमी-कोलन की आवश्यकता है - सर्वर.मैपपाथ ("फ़ोल्डर के लिए पथ";) - लेकिन इसने मुझे मेरी सीएसवी फ़ाइल को पार्स करने की कोशिश करने के कुछ घंटे बचाए हैं - धन्यवाद! – whostolemyhat