Пример #1
0
        private void AssertWriter(string expectedOutput, Action <ArffWriter> action)
        {
            using (MemoryStream memoryStream = new MemoryStream())
                using (ArffWriter arffWriter = new ArffWriter(memoryStream))
                {
                    action(arffWriter);

                    arffWriter.Flush();

                    memoryStream.Seek(0, SeekOrigin.Begin);

                    using (StreamReader streamReader = new StreamReader(memoryStream, new UTF8Encoding(false), true, 4096, true))
                        Assert.AreEqual(expectedOutput, streamReader.ReadToEnd());
                }
        }
Пример #2
0
        private void WriteArffFile(string[] allfiles)
        {
            using (ArffWriter arffWriter = new ArffWriter(textBox3.Text + ".arff"))
            {
                bool       relation = true;
                object[]   inst     = null;
                object[][] insts    = new object[allfiles.Length][];
                int        n        = 0;

                foreach (string file in allfiles)
                {
                    FileInfo fi = new FileInfo(file);

                    ArffReader datafile = new ArffReader(file);

                    ArffHeader header = datafile.ReadHeader();

                    var instances = datafile.ReadAllInstances();

                    //var instance = datafile.ReadInstance();


                    object[] instance = null;

                    foreach (var ins in instances)
                    {
                        instance = ins;
                    }

                    if (header != null)
                    {
                        var attributes = header.Attributes;

                        string line;

                        StreamReader attrfile = new StreamReader("attributes.txt");

                        int i = 0;
                        int j = 0;
                        while ((line = attrfile.ReadLine()) != null)
                        {
                            foreach (var attribute in attributes)
                            {
                                if (attribute.Name == line)
                                {
                                    if (relation == true)
                                    {
                                        arffWriter.WriteRelationName(header.RelationName);
                                        relation = false;
                                    }

                                    arffWriter.WriteAttribute(new ArffAttribute(attribute.Name, attribute.Type));

                                    j++;
                                }
                                i++;
                            }
                        }

                        inst = new object[j];
                        j    = 0;
                        i    = 0;

                        while ((line = attrfile.ReadLine()) != null)
                        {
                            foreach (var attribute in attributes)
                            {
                                if (attribute.Name == line)
                                {
                                    inst.SetValue(instance.GetValue(i), j);
                                    j++;
                                }
                                i++;
                            }
                        }

                        insts.SetValue(inst, n);

                        attrfile.Close();
                    }
                    datafile.Dispose();
                    n++;
                    progress++;
                }
                foreach (var ins in insts)
                {
                    arffWriter.WriteInstance(new object[] { ins });
                }
            }
        }