Zmiana rozmiaru tablic

Odpowiedz Nowy wątek
2006-08-29 15:27
Kuter skuter
0

Wyczytalem ze w C# nie da sie zmienic rozmiaru tablicy tak wiec sie pytam jak to ominac? Bo w C mialem sobie malloc i realloc i bylo dobrze. Ale jest jeszcze jeden problem bo dane przechowywane w tablicy beda typu STRING wiec dlugosc jest rozna :(

HELP!

Pozostało 580 znaków

2006-08-29 15:41
0

Ani w c/c++ ani w c# nie mozna zmienic rozmiaru raz przydzielonej tablicy. Mozesz zarezerwowac nowa i skopiowac do niej dane albo uzyc czegos z System.Collections, np. ArrayList.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-29 17:06
Kuter skuter
0

Znalazlem takie cos ze jak zrobie jeszcze raz wywaolanie tworzenia tablicy z klasy to ta wczesniejsza zostaje kasowana a ta ktora stworzylismy ja zastepuje, dobrze kombinuje czy nie?

Pozostało 580 znaków

2006-08-29 17:15
0

No tak, ale tracisz stara, nie? Mozna oczywiscie przypisac nowa referencje (bo tak to wlasnie wyglada), ale w tym momencie informacje o starej gina... Nawet jesli je zapiszesz, to nowa tablica jest pusta i i tak musisz dane skopiowac. Juz latwiej jest uzyc listy i po prostu dodawac elementy.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-29 17:47
0

Hej a Array.Resize<t> ?

 string[] k = new string[5];
            k[0] = "UUU";
            k[1] = "ZZZ";
            Array.Resize<string>(ref k, 10);
            Console.WriteLine("{0} {1}", k[0], k[1]);
            Console.WriteLine(k.Length);

Pozostało 580 znaków

2006-08-29 18:04
0

fucktycznie, zapomnialo mi sie, sorki :)

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-29 18:25
Kuter skuter
0

Tzn tym sposobem co kolega podal mozna zmieniac rozmiar tablicy? Jesli jest jak mysle to sie chyba posikam ze szczescia :)

Pozostało 580 znaków

2006-08-29 19:04
0

jonhy - zdarza się, nawet najlepszym ;)

Kuter skuter - na to wygląda, sprawdź z resztą sam ;) choć nadal nie rozumiem dlaczego nie mogłeś tego zrobić od razu na parę innych sposobów :)

Pozostało 580 znaków

2006-08-29 19:13
0
Lukke napisał(a)

jonhy - zdarza się, nawet najlepszym ;)

Mi tam daleko do najlepszych, wiec tym bardziej :)

Lukke napisał(a)

Kuter skuter - na to wygląda, sprawdź z resztą sam ;) choć nadal nie rozumiem dlaczego nie mogłeś tego zrobić od razu na parę innych sposobów :)

Fakt, w innych jezykach da sie zyc bez tego, tutaj tez by sie dalo. Ale skoro mozna to w sumie czemu nie korzystac? :)

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-29 20:10
Kuter skuter
0

Zeby nie zasmiecac to mam jeszcze jeden problem: Gdzie wewalic kod aby sie wykonywal po pojawieniu sie calego okna programu? Chce zrobic progress bar ladowania plikow itd a jak zaladuje to go schowac i pokazac reszte komponentow, wewalalem wszedzi i byly 2 efekty: error lub formatka sie jeszcze nie pokazala xD daje kod:

[cpp]
/*

  • Created by Paweł Jabłoński
  • User: Demoh
  • Date: 2006-08-24
  • Time: 12:19
    */

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;

namespace xomag
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm
{

    [STAThread]
    public static void Main(string[] args)
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainForm());

    }

    public MainForm()
    {
        //
        // The InitializeComponent() call is required for Windows Forms designer support.
        //
        InitializeComponent();
        //
        // TODO: Add constructor code after the InitializeComponent() call.
        //
    }

    void MainFormLoad(object sender, System.EventArgs e)
    {

        //tutaj wszystko startuje

        //ladowanie pliku

        //jesli nie ma to tworzymy pusty i 1 magazyn

        //jesli jest to wczytujemy dane

        //ustawiamy godzine
        if(DateTime.Now.Minute > 9)
        {
            label1.Text = DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year + "   " + DateTime.Now.Hour + ":" + DateTime.Now.Minute;
        }
        else
        {
            label1.Text = DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year + "   " + DateTime.Now.Hour + ":0" + DateTime.Now.Minute;
        }

        Thread.Sleep(3000);
        //chowamy ladowanie i pokazujemy program
        tabControl1.Visible = true;

    }

    void TabPage1Click(object sender, System.EventArgs e)
    {

    }

    void BackgroundWorker1DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
    {

    }

    void ComboBox1SelectedIndexChanged(object sender, System.EventArgs e)
    {

    }

    void ListView1SelectedIndexChanged(object sender, System.EventArgs e)
    {

    }

    void Timer1Tick(object sender, System.EventArgs e)
    {
        if(DateTime.Now.Minute > 9)
        {
            label1.Text = DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year + "   " + DateTime.Now.Hour + ":" + DateTime.Now.Minute;
        }
        else
        {
            label1.Text = DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year + "   " + DateTime.Now.Hour + ":0" + DateTime.Now.Minute;
        }
    }
}

}[/cpp]

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0