2016-04-22 15 views
0

Ich bin mit dem Ändern der Codepage einer DBF-Datei von 437 bis 852.Encoding DBF-Datei in 852 Codepage funktioniert nicht

ich den Code ein Problem mit untersucht, die die Datentabelle Codiert und es scheint, dass im Innern das Visual Studio es korrekt zu 852 codiert, aber nach dem Verschieben der codierten Datei und Ersetzen durch das Original kommt es zurück, als ob Kodierung nicht passieren würde? Also ich denke, dass der Code für die Codierung funktioniert gut, aber etwas anderes ändert die Datei wieder auf 437 Codepage! Bitte helfen ...

Beispielcode:

DbfRecord orec = new DbfRecord(odbf.Header); 
orec.AllowDecimalTruncate = true; 
orec.AllowIntegerTruncate = true; 

foreach (DataRow DR in EndodedDataTable.Rows) 
{ 
    for (int i = 0; i < EndodedDataTable.Columns.Count; i++) 
    { 
     orec[i] = DR[i].ToString(); 
    } 
    odbf.Write(orec, true); 
} 

odbf.Close(); 

File.Delete(OriginalFileName); 
File.Move(TempFileName, OriginalFileName); 

Methode, die die Codierung tut:

http://pastebin.com/jPqJMxen

+0

Ihre Probe Code enthält nicht einmal den geringsten Hinweis auf Text-Codierung ... – Nyerguds

+0

ja ich weiß, aber das Problem ist nicht der Kodierungscode, weil es funktioniert, aber das Problem ist File.Move (TempFileName, OriginalFileName) die Datei, die verschoben wird bleibt Mit 437 Codepage dachte ich sogar, wenn ich DR über prüfe Breakpoints es codiert die Zeichen korrekt zu 852 – ChenChi

+0

die Codes macht temporäre DBF-Datei "_DBFFILE" codiert es und ersetzt es durch original "DBFFILE" aber wenn ich die dbf-Datei öffnen, schien es noch die odbf.Write (orec, true) zu schreiben 852 Codepage-Zeichen es öffnet sich immer noch (in DBF Commander) als 437 Codepage – ChenChi

Antwort

-1

Es stellt sich heraus, dass mein Verfahren zur Codierung 437-852 funktioniert gut, aber die zusätzlicher Code, der temporäre Datei erstellt und in die Originaldatei verschoben hat, verursachte eine Menge Verwirrung im Code und funktionierte daher nicht korrekt ...

landete ich direkt das codierte Datentabelle verwenden es in Access-Datei zu schreiben, da, dass meine ursprüngliche Absicht

Methode war, die mit Codepage 852 Codierung Datentabelle zurückgibt:

http://pastebin.com/jPqJMxen

~ ChenChi

+0

Warum runter und dann keine Kommentare hinterlassen? – ChenChi