Моя цель - читать из текстового файла.Этот текстовый файл содержит различные столбцы и строки для каждого значения.Я могу читать файл до тех пор, пока я не изменю тип данных, который окна устанавливают самостоятельно.Но я не хочу, чтобы столбцы «plz» и «nr» были числами (целыми числами), а были текстовым значением (String), потому что plz может содержать значения, такие как «01979», а nr может содержать что-то вроде «4a».Как число начальный ноль будет потерян, и таким образом что-то вроде открытки никогда не достигнет своего предназначения.
Таким образом, мне нужно изменить тип данных в файле "schema.ini".Но это не работает.Я думаю, что делаю некоторые ошибки и не следую инструкциям так, как мне нужно: "Файл Schema.ini"
Каждый раз, когда я пытался прочитать строку, я получал исключение, потому что оновсе еще хочу прочитать значения Int32, которые мне нужно преобразовать в строку.
Я назвал файл "kunde.txt"
knr|nachname|vorname|plz|ort|strasse|nr
1|Müller|Johan|12345|Muster|Musterstr|1
2|Kummer|Freude|23456|Feeling|Gefühlswelt|4a
Col 0 = knr, 1 =nachname, 2 = vorname, 3 = plz, 4 = ort, 5 = strasse, 6 = nr
con->ConnectionString =
"Provider=Microsoft.JET.OLEDB.4.0;" +
"Data Source=D:/C++/Quellen;" +
"Extended Properties=text";
// ....
meineKunden->CommandText =
"SELECT knr, nachname, vorname, plz, ort, strasse, nr " +
"FROM kunde.txt ";
// ....
String ^ str;
while(reader->Read()){
str += Convert::ToString(reader->GetInt32(0));
str += " ";
str += reader->GetString(3);
str += " ";
str += reader->GetString(6);
str += "\r\n";
}
this->txb_Insert->Text = str;
Мой schema.ini
[kunde.txt]
ColNameHeader=True
Format=Delimited(|)
3=plz Char Width 5
6=nr Char Width 10
Я пробовал с "Col3"вместо "3".Я использовал «Text», а не «Char», и даже пытался использовать его без Width.Но каждый раз я получал одно и то же сообщение об ошибке.Даже если я использую 4 или 7 ... так как я не уверен, как он будет учитываться в файле ini / txt.
Исключение:
System.InvalidCastException: Die angegebene Umwandlung ist ungültig.
bei System.Data.OleDb.ColumnBinding.ValueString()
bei System.Data.OleDb.OleDbDataReader.GetString(Int32 ordinal)
Исключение составляют вызовы ужеstr + = reader-> GetString (3) Если я прав, столбец 3 содержит plz, таким образом.
Может кто-нибудь сказать, что я неправильно понимаю в файле schema.ini?Поскольку я мог читать файл без ошибок, пока я не пытаюсь изменить тип данных в некоторых столбцах, проблемы должны быть с INI-файлом.По крайней мере, я так думаю.
РЕДАКТИРОВАТЬ: я изменил свой INI-файл на:
[kunde.txt]
ColNameHeader=True
Format=Delimited(|)
Col1="knr" Integer
Col2="nachname" Text
Col3="vorname" Text
Col4="plz" Text
Col5="ort" Text
Col6="strasse" Text
Col7="nr" Text
Теперь он работает для "плз", но исключение вызывается в последней строке, когдаЯ называю "нр".WTF?