Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[C#] Wczytanie pliku, zamiana wartości, normalizacja danych, zapis

verdiii 12 Mar 2021 14:52 312 7
  • #1
    verdiii
    Level 2  
    Witam. Mam zadanie do wykonania. Polega ono na tym, aby w języku C# wczytać plik ( mam 3 datasety ), zmienić symbole np. a, b, c na liczby od 1 - 15. Znaleźć najmniejszą i największą wartość w kolumnach. Do tej pory udało mi się w DataGridView wczytać plik, i znaleźć najmniejszą i największą wartość w pliku z samymi liczbami. Jak mam zamienić wartości w wczytanym pliku w kolumnach?
  • #2
    JacekCz
    Level 39  
    A kod gdzie?

    Obawiam się, ze DataGridView nie jest właściwym miejscem do PRZETWARZANIA danych, to jest TYLKO prezentacja.
    Nie ucz się tak robić.
  • #3
    verdiii
    Level 2  
    W takim razie, w czym mam zacząć? Jak to zrobić? Siedzę nad tym już parę dni i nic nie mogę wymyślić :/
  • #4
    JacekCz
    Level 39  
    ja bym zrobił klasę na jeden wiersz

    Code: csharp
    Log in, to see the code


    na tym przetwarzał itd...
    a zasilanie tą listą warstwy prezentacji to dwie linijki (BTW - czego używasz???)


    Czyli wskazówki a nie kod - jak ty poważnie traktujesz pytanie, taka odpowiedź.
  • #5
    verdiii
    Level 2  
    Używam visual studio. Muszę wczytać plik ( dataset ) jako GUI ( chce użyć windows form ), użyć buttona do wybrania pliku, jeśli to potrzebne zamienić wartości np a, b, c na cyfry, znaleźć najmniejszą wartość i największą w kolumnach w tym pliku i zapisać np json.
  • #6
    JacekCz
    Level 39  
    verdiii wrote:
    Muszę wczytać plik ( dataset ) jako GUI


    Plik to nie jest dataset, to tak na poziomie filozoficznym.
    Widzisz, jakie masz zamieszanie przy tym stylu nauki/nauczania.
    Trzeba DZIELIĆ (i zwyciężać).
    Nigdy się dobrze nie nauczysz robiąc wsztko na kupę, szyjąc jakieś spaghetti.
    Jeśli tak chcesz, ja ci nie pomogę.

    Co GUI to GUI, co dane i algorytmy to drugie. To są oddzielne rzeczywistości.

    Z całej bogatej algorytmiki i struktur danych, programiści np Delphi znają jedną: kontrolki wizualne.
    Niektórzy nie znają koncepcji zmiennych, przechowują w Editach / Labelkach, księga Guinessa (albo nagroda Darwina)
  • #7
    verdiii
    Level 2  
    Do tej pory mam coś takiego:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.OleDb;
    using System.Text.RegularExpressions;

    namespace testtabele
    {
    public partial class Form1 : Form
    {
    public Form1()
    {

    InitializeComponent();

    }

    DataTable table = new DataTable();

    private void Form1_Load(object sender, EventArgs e)
    {

    table.Columns.Add("A1", typeof(string));
    table.Columns.Add("A2", typeof(string));
    table.Columns.Add("A3", typeof(string));
    table.Columns.Add("A4", typeof(string));
    table.Columns.Add("A5", typeof(string));
    table.Columns.Add("A6", typeof(string));
    table.Columns.Add("A7", typeof(string));
    table.Columns.Add("A8", typeof(string));
    table.Columns.Add("A9", typeof(string));
    table.Columns.Add("A10", typeof(string));
    table.Columns.Add("A11", typeof(string));
    table.Columns.Add("A12", typeof(string));
    table.Columns.Add("A13", typeof(string));
    table.Columns.Add("A14", typeof(string));
    table.Columns.Add("A15", typeof(string));
    table.Columns.Add("A16", typeof(string));
    table.Columns.Add("A17", typeof(string));
    dataGridView1.AutoGenerateColumns = true;


    dataGridView1.DataSource = table;




    }
    private void button1_Click(object sender, EventArgs e)
    {
    string[] lines = File.ReadAllLines(@"C:");
    string[] values;



    for (int i = 0; i < lines.Length; i++)
    {
    values = lines.ToString().Split(' ', ',');


    string[] row = new string[values.Length];

    for (int j = 0; j < values.Length; j++)
    {

    row[j] = values[j].Trim();

    }

    table.Rows.Add(row);
    }

    double max = 0;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    if (max < double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(".", ",")))
    {
    max = double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(".", ","));
    textBox1.Text = max.ToString();
    }


    }
    double min = 0;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    if (i == 0)
    {
    min = double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(".", ","));
    }
    if (min > double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(".", ",")))
    {
    min = double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(".", ","));
    }
    }

    textBox2.Text = min.ToString();
    }

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    }


    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void label1_Click(object sender, EventArgs e)
    {

    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }

    private void button2_Click(object sender, EventArgs e)
    {

    }
    }
    }

    Nie mam pojęcia jak przejść przez wszystkie kolumny aby wyświetliło mi w texboxach max i min każdej kolumny, i nie wiem jak zamienić wartości symboliczne na cyfry.
    [/i][/i][/i][/i][/i]
  • #8
    JacekCz
    Level 39  
    verdiii wrote:
    i nie wiem jak zamienić wartości symboliczne na cyfry.


    Typowe dla projektów bez żadnego PROJEKTU. Przypadkowa wklejka bo się na googlu nawinęło?

    Nazwij dane.
    Co to jest?
    na pewno A1, A2 to są ZŁE nazwy danych.
    Wyraź to w postaci klasy Wiersz (lub dowolna sensowna nazwa), który będzie zawierał PRAWDŁOWE typy danych. Co jest wcześniej, to wie o tym funkcja wczytująca.

    Lub się piernicz z tematem po swojemu.