Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/14/15 18:59:13 (8 years ago)
Author:
gkronber
Message:

#1966:

  • renamed creatables
  • partially fixed bin packing problem instance provider
Location:
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Instances
Files:
1 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Instances/BPPInstanceProvider.cs

    r13032 r13460  
    2424using System.Collections.Generic;
    2525using System.IO;
     26using System.IO.Compression;
    2627using System.Linq;
    2728using System.Reflection;
    2829using System.Text.RegularExpressions;
     30using System.Windows.Forms;
    2931
    3032namespace HeuristicLab.Problems.Instances.BinPacking {
    31   public class BPPORLIBInstanceProvider : ProblemInstanceProvider<BPPData> {
     33  public class BPPORLIBInstanceProvider : ProblemInstanceProvider<BPPData>, IProblemInstanceProvider<BPPData> {
    3234
    3335    public override string Name {
     
    5153      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
    5254
    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);
    5665        }
    5766      }
     
    6069    public override BPPData LoadData(IDataDescriptor id) {
    6170      var descriptor = (BPPORLIBDataDescriptor)id;
    62       var instanceArchiveName = GetResourceName("JSSPORLIB.zip");
    63       using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
     71      var instanceArchiveName = GetResourceName("BPPORLIB.zip");
     72      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
    6473        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
    6574
    66         using (var stream = instancesZipFile.GetInputStream(entry)) {
     75        using (var stream = entry.Open()) {
    6776          var parser = new BPPORLIBParser();
    6877          parser.Parse(stream);
     
    8493      var instance = Load(parser);
    8594      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;
    8796      return instance;
    8897    }
     
    120129        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
    121130    }
    122 
    123     protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
    124       ZipEntry entry;
    125       while ((entry = zipFile.GetNextEntry()) != null) {
    126         yield return entry.Name;
    127       }
    128     }
    129131  }
    130132}
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Instances/BPPORLIBParser.cs

    r13032 r13460  
    6464    /// <returns>True if the file was successfully read or false otherwise.</returns>
    6565    public void Parse(Stream stream) {
    66       var reader = new StreamReader(stream);   
    67       var delim = new char[] { ' ', '\t' };     
     66      var reader = new StreamReader(stream);
     67      var delim = new char[] { ' ', '\t' };
    6868      var problemClass = reader.ReadLine().Split(delim, StringSplitOptions.RemoveEmptyEntries);
    6969
     
    118118        Description = "<Missing>";
    119119      }
    120      
     120
    121121
    122122    }
     
    135135        else
    136136          writer.WriteLine("{0,-5} {1,-5} {2,-5}", ItemMeasures[i][0], ItemMeasures[i][1], ItemMeasures[i][2]);
     137
    137138      }
    138139      writer.Flush();
Note: See TracChangeset for help on using the changeset viewer.