public void Merge(ShpFile shpFile) { this.header.Merge(shpFile.header); while (shpFile.extendBinaryReader.BaseStream.Position < shpFile.extendBinaryReader.BaseStream.Length) { Record recordCurrent = new Record(); recordCurrent.Read(shpFile.extendBinaryReader); recordNumber++; recordCurrent.RecordNumber = recordNumber; recordCurrent.Write(this.extendBinaryWriter); } }
public static void Merge(string[] SourceFiles, string targetFile) { File.Copy(SourceFiles[0], targetFile, true); ShpFile outFile = new ShpFile(targetFile, ShapeFileOpenMode.FileReadFirst); for (int i = 1; i < SourceFiles.Length - 1; i++) { ShpFile mergeFile = new ShpFile(SourceFiles[i], ShapeFileOpenMode.FileRead); outFile.Merge(mergeFile); } outFile.Close(); }
public static void Merge(string[] SourceFiles, string targetFile, BackgroundWorker worker, DoWorkEventArgs e) { File.Copy(SourceFiles[0], targetFile, true); ShpFile outFile = new ShpFile(targetFile, ShapeFileOpenMode.FileReadFirst); for (int i = 1; i < SourceFiles.Length; i++) { ShpFile mergeFile = new ShpFile(SourceFiles[i], ShapeFileOpenMode.FileRead); outFile.Merge(mergeFile); mergeFile.Close(); int percentComplete = (int)((float)(i + 1) / (float)SourceFiles.Length * 100); worker.ReportProgress(percentComplete); if (worker.CancellationPending) { e.Cancel = true; outFile.Close(); return; } } outFile.Close(); }