Code: Select all
CONTACT_SOURCE_ID|LAST_UPDATED|LAST_UPDATED_BY|T92|D10|T94|T95|T96|T97|T98|T99|T100|T101|T124|T125|T126
72|05/01/2006 14:48:38|13|||Mr|S|BLOGGS|1 Random Building
Random Street|Random Town||Random County|RN1 2DM|||
74|05/01/2006 15:48:38|31|||Dr|Delta|Who|The
Tardis|SpaceAndTime||Universe|D1 0WW|||
< /code>
Ich muss diese versteckten Zeilenumbrüche irgendwie entfernen, ohne die Zeilenpausen als reale Zeilenanminatoren zu entfernen (ansonsten führt sie nur zu einem (sehr langen) Datensatz. Also im Wesentlichen eine Methode zum Entfernen aller Zeilenpausen zwischen zwei Spalten -Delimitern. 15) und wenn es weniger als 15 ist, ersetzen Sie in der Zeile einen Ersatz, um \ n
Code: Select all
const Int32 BufferSize = 128;
string fileName = @"C:\Work\OriginalFile.txt";
string outputFile = @"C:\Work\NewFile.txt";
int numColBreaks = 0;
using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize))
{
String line;
while ((line = streamReader.ReadLine()) != null)
{
numColBreaks = 0;
foreach (char c in line)
{
if (c == '|')
{
numColBreaks++;
}
}
if (numColBreaks != 15)
{
line.Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " ");
}
using (StreamWriter sw = File.AppendText(outputFile))
{
sw.WriteLine(line);
}
}
}
Code: Select all
BULK INSERT dbo.TargetTable
FROM 'C:\Work\OriginalFile.txt'
WITH (
FORMAT = 'CSV'
, FIELDTERMINATOR = '|'
, ROWTERMINATOR = '\n'
, FIRSTROW = 2
)