Changeset 13460 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Instances/BPPInstanceProvider.cs
- Timestamp:
- 12/14/15 18:59:13 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Instances/BPPInstanceProvider.cs
r13032 r13460 24 24 using System.Collections.Generic; 25 25 using System.IO; 26 using System.IO.Compression; 26 27 using System.Linq; 27 28 using System.Reflection; 28 29 using System.Text.RegularExpressions; 30 using System.Windows.Forms; 29 31 30 32 namespace HeuristicLab.Problems.Instances.BinPacking { 31 public class BPPORLIBInstanceProvider : ProblemInstanceProvider<BPPData> {33 public class BPPORLIBInstanceProvider : ProblemInstanceProvider<BPPData>, IProblemInstanceProvider<BPPData> { 32 34 33 35 public override string Name { … … 51 53 if (String.IsNullOrEmpty(instanceArchiveName)) yield break; 52 54 53 using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) { 54 foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) { 55 yield return new BPPORLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null); 55 56 using (var file = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) { 57 58 foreach (var entry in file.Entries.OrderBy(x => x.Name)) { 59 if (string.IsNullOrWhiteSpace(entry.Name)) continue; 60 yield return new BPPORLIBDataDescriptor( 61 name: Path.GetFileNameWithoutExtension(entry.Name), 62 description: GetDescription(), 63 instanceIdentifier: entry.FullName, 64 solutionIdentifier: null); 56 65 } 57 66 } … … 60 69 public override BPPData LoadData(IDataDescriptor id) { 61 70 var descriptor = (BPPORLIBDataDescriptor)id; 62 var instanceArchiveName = GetResourceName(" JSSPORLIB.zip");63 using (var instancesZipFile = new Zip File(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {71 var instanceArchiveName = GetResourceName("BPPORLIB.zip"); 72 using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) { 64 73 var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier); 65 74 66 using (var stream = instancesZipFile.GetInputStream(entry)) {75 using (var stream = entry.Open()) { 67 76 var parser = new BPPORLIBParser(); 68 77 parser.Parse(stream); … … 84 93 var instance = Load(parser); 85 94 instance.Name = Path.GetFileName(path); 86 instance.Description = "Loaded from file \"" + path + "\" on " + DateTime.Now .ToString();95 instance.Description = "Loaded from file \"" + path + "\" on " + DateTime.Now; 87 96 return instance; 88 97 } … … 120 129 .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success); 121 130 } 122 123 protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {124 ZipEntry entry;125 while ((entry = zipFile.GetNextEntry()) != null) {126 yield return entry.Name;127 }128 }129 131 } 130 132 }
Note: See TracChangeset
for help on using the changeset viewer.