2019 और C# के साथ विजुअल स्टूडियो
मेरे पास इस प्रारूप में डेटा के साथ एक फ्लैट फ़ाइल है:
CustomerName<tab>CustomerAddress<tab>CustomerEmail<tab>CustomerPhone etc....
Tom<tab>123 Chestnut Street, NY, NY 10001<tab>Tom@gmail.com<tab>212-555-1212
Dick<tab>234 Oak Street, LA, CA 91210<tab>Dick@gmail.com<tab>747-555-1212
Harry<tab>789 Maple Drive, Reno, NV 89508<tab>Harry@yahoo.com<tab>775-555-1212
etc...
हमें दी गई ग्राहक फ़ाइल के आधार पर कॉलम लगभग 5 से 15 कॉलम तक भिन्न हो सकते हैं।
हमारे उपयोगकर्ता डेटा की 1 से 50 नमूना पंक्तियों में से कहीं भी, डेटा के नमूने का पूर्वावलोकन करने में सक्षम होना चाहते हैं। हालाँकि वे पृष्ठ पर पिवट किए गए डेटा को देखने पर जोर देते हैं:
Column1 Column2 Column3 etc...
Tom Dick Harry
123 Chestnut Street... 234 Oak Street... 789 Maple Drive...
Tom@gmail.com Dick@gmail.com Harry@yahoo.com
212-555-1212 747-555-1212 775-555-1212
etc...
इस उद्देश्य के लिए मेरे पास यह विशेष ग्राहक वर्ग है:
public class Customer {
public string Column1 { get; set; }
public string Column2 { get; set; }
public string Column3 { get; set; }
//etc.... to 50 columns
}
लेकिन मुझे इसे कोड करने के लिए एक शानदार तरीके से आने में कठिनाई हो रही है। अगर मैं डेटा को सिस्टम में प्राप्त कर सकता हूं। डेटा। डेटाटेबल उस पिवोटेड फॉर्म में, मैं इसे आसानी से एक HTML तालिका में प्राप्त कर सकता हूं। डेटा की पंक्तियों के माध्यम से इसे कक्षा में लाने के बारे में कोई विचार? सुनिश्चित नहीं है कि उपयोग करने के लिए सर्वोत्तम मध्यवर्ती वर्ग क्या हैं। मैं इस तरह कुछ हार्ड कोड नहीं करना चाहता:
...
for (int i = 0; i < columnCount; i++) {
Customer c = new Customer();
c.Column1 = row1[i].ToString();
c.Column2 = row2[i].ToString();
c.Column3 = row3[i].ToString();
//etc...
}
1 उत्तर
मेरा दृष्टिकोण थोड़ा अलग होगा, और आपके द्वारा बनाई गई डेटा संरचना से अलग होगा। मैं इसके बजाय फ्लैट फ़ाइल पंक्तियों को स्ट्रिंग्स की एक सरणी वाली सरणी ऑब्जेक्ट्स में deserialize कर दूंगा। इस तरह मुझे कुछ भी हार्ड-कोड नहीं करना है और मेरी "पंक्ति गणना" और मेरी ऑब्जेक्ट डेटा गुण लंबाई गतिशील है।
// this is for a row's data
public class RowObject
{
public List<string> RowObjectProperty;
public RowObject()
{
RowObjectProperty = new List<string>();
}
}
// ===================================================================
// ... somewhere in a class which deserializes the flat file
List<RowObject> rows = new List<RowObject>();
// ...read data into the rows....
// ...print out the data for each row as your columns
foreach (RowObject customer in rows)
{
foreach (string customerProperty in customer)
{
// here is each customer property (name, email, phone, etc)
// ... create your column for this customer here
}
}
// ===================================================================
यह थोड़ा प्रारंभिक है, लेकिन मुझे लगता है कि आपको बेहतर दिशा में ले जाना चाहिए। अब, यदि आप पहले से ही जानते हैं कि डेटा संरचना (ग्राहक डेटा) में विशिष्ट और संगत डेटा फ़ील्ड/प्रकार होंगे, तो मैं यहां सुझाई गई फ़्लैट फ़ाइल को पार्स करूंगा: https://stackoverflow.com/a/18479420/1188197
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।