Тема: С# в питаннях та відповідях

Ответить в теме
Страница 1 из 4 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 20 из 70
  1. Вверх #1
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728

    По умолчанию С# в питаннях та відповідях

    Якщо дозволите, хотів би "упасти на хвіст" гуру в .Net.

    У мене час від часу постають питання, відповіді на які в неті шукати довго і неефективно, а книгах тим більше.

    1)Про масиви.
    Для моїх задач порібен масив і я так розумію - двумірний і з динамічною
    величиною. (для зберігання відпарсений слів)
    Як з такими працюють в С#?

    2)Читати файл.
    Є *.csv файл, мені необхідно прочитати його по стовбцям.
    (текстовий файл в вигляді таблиці, розділений знаком ";")
    Є якісь ідеї, як це можна зробити? Данні можна наприклад загнати в
    вище згадуваний масив. (Одна колонка - один масив)
    Тут могла бути ваша реклама


  2. Вверх #2
    Посетитель Аватар для traveller
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    171
    Репутация
    25
    Цитата Сообщение от YOKO Посмотреть сообщение

    1)Про масиви.
    Для моїх задач порібен масив і я так розумію - двумірний і з динамічною
    величиною. (для зберігання відпарсений слів)
    Як з такими працюють в С#?
    я не специалист в C# по идеологическим убеждениям.
    так что шапками не кидайте
    но наверное возможен вариант, как в Java
    vector содержащий другие vector и написать wrapper для этого дела

  3. Вверх #3
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    Наразі, мені необхідний робочий приклад.

    З самого початку.
    Як проходить ініціалізація, наповнювання масива і т.д. і т.п.
    Бо я в шарпі абсолютній профан.
    Тут могла бути ваша реклама

  4. Вверх #4
    тож не специалист в шарп.
    http://www.dotnetspider.com/kb/Article17.aspx
    Двумерный динамический делал как ArrayList, элементами которого являются другие ArrayList.

    П.С. Возможно это в корне неверный способ.
    Про csv:
    Вот пример: http://knab.ws/blog/index.php?/archives/10-CSV-file-parser-and-writer-in-C-Part-2.html
    + есть много готовых парсилок на с#, которые сделают все, что ты хочешь. Погугли.
    Последний раз редактировалось neoweb; 03.10.2007 в 23:07.

  5. Вверх #5
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    О, сенкс, це ближче до теми!
    Але питання актуальне.
    Тут могла бути ваша реклама

  6. Вверх #6
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    А далеко ходить не надо.
    открываем MSDN - Development Tools and Languages -
    Visual Studio- Visual C# - C# Programming Guide -
    Arrays
    и вперед.
    можно только заметить, что
    1. массив не может изменить длину после создания. его можно только создать новый и скопировать из старого.
    2. многомерные массивы могут быть как int[,] - многомерный в прямом смысле - в данном случае прямоугольный, так и int[][] - jagged array - массив массивов.
    3. если элементы нужно постепенно накапливать а потом работать как с массивом, тогда
    Код:
    List<int> list=new List<int>();
    list.Add(5);
    list.Add(231);
    list.Add(33);
    int[] array=list.ToArray();
    4. строку из csv файла в простейшем случае можно разобрать так
    Код:
    string data="aaa;bbb;ccc";
    string[] parts=data.Split(new char[] {';'});
    но для реальных файлов из екселя со строками так делать не рекомедуется - отдельный поля там могут браться в "" и в них может быть ; . лучше написать парсер на основе регулярных выражений.

  7. Вверх #7
    Посетитель
    Пол
    Мужской
    Сообщений
    431
    Репутация
    267
    Как это нет динамических массивов!!!??? вы чего??? Прочитай внимательно про класс ArrayList и для чего он нужен!!!!! Пример увы мне влом писать(((( но я думаю не проблема разобраться с его методами и применением, скажу сразу он специально создан для динамич. массивов) правда не знаю подходит ли он к многомерным массивам(((( надо почитать
    Последний раз редактировалось Cesar; 05.10.2007 в 11:51.

  8. Вверх #8
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    Сенкс Е лот то еврібаді!!!
    Мені досить добре підходить приклад який навів Guffy
    List<int> list=new List<int>();
    list.Add(5);
    list.Add(231);
    list.Add(33);
    int[] array=list.ToArray();
    Таким же чином я так розумію, можна і з string працювати? Тільки змінивши тип з int на string.

    Значить, з цим розібралися, всім дякую ще раз.
    Последний раз редактировалось YOKO; 05.10.2007 в 13:41.
    Тут могла бути ваша реклама

  9. Вверх #9
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    3)Time&Date

    Питання досить просте і у мене воно є фактично вирішеним, але
    хочу звірити з тим, як це робиться "у людей". Бо не полишає відчуття,
    що місцями я штани через голову одягаю...

    Задача:
    Треба вивести в лейбли відповідні значення:

    "Час" (12.32)
    "Дата" (5 жовтня)
    "Коротка дата" (05.10.2007)
    "Повна дата" + "День тижня" (5 жовтня, п`ятниця)

    Особливо цікавить як вивести локал-бейзд повну дату з днем тижня. Бо у мене чомусь місяць "Жовтень", а день "Friday".

    зи. У мене українська локаль.
    Потрібно, щоб на різних системах коректно відображались і місяць і день тижня і дата.
    Звертаю вашу увагу, що число і місяць можуть мінятися місцями!

    Для чистоти експеременту, свій код не показую.
    Тут могла бути ваша реклама

  10. Вверх #10
    User banned
    Пол
    Мужской
    Сообщений
    4,167
    Репутация
    1059
    Цитата Сообщение от YOKO Посмотреть сообщение
    Треба вивести в лейбли відповідні значення:

    "Час" (12.32)
    "Дата" (5 жовтня)
    "Коротка дата" (05.10.2007)
    "Повна дата" + "День тижня" (5 жовтня, п`ятниця)
    Поиграйся с этим:
    DateTime.Now.ToString("d MMMM dddd H:m:s");

  11. Вверх #11
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одеса
    Возраст
    45
    Сообщений
    29,033
    Репутация
    12606
    Цитата Сообщение от YOKO Посмотреть сообщение
    відповіді на які в неті шукати довго і неефективно
    MSDN всегда давал ответы практически на все вопросы.

  12. Вверх #12
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    Цитата Сообщение от Cesar Посмотреть сообщение
    Как это нет динамических массивов!!!??? вы чего??? Прочитай внимательно про класс ArrayList и для чего он нужен!!!!! Пример увы мне влом писать(((( но я думаю не проблема разобраться с его методами и применением, скажу сразу он специально создан для динамич. массивов) правда не знаю подходит ли он к многомерным массивам(((( надо почитать
    вот и почитай
    это класс, а не массив. не надо путать теплое с мягким. см. МСДН выше

  13. Вверх #13
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1489
    массив и класс, имхо.
    конечно имелось в виду не сравнение класса и массива, а сравнение обьекта типа ArrayList и массива.

    что такое массив? это структура данных, доступ к которым индексирован. все. точка.
    никакого ограничения на динамичность на массив в компьютерной науке нет.
    MSDN? не аргумент.
    может ли некий обьект, скажем типа ArrayList, быть такой структурой? да вполне.
    есть возражения?
    Последний раз редактировалось Ull9; 06.10.2007 в 23:06.

  14. Вверх #14
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    Ну конечно, какие могут быть возражения
    Нигде не написано, что писать против ветра зло, но тем не менее существует общеизвестное понятие что так делать не стоит.
    А общеизвестное понятие массива - непрерывный участок памяти, в котором размещаются структуры данных одного типа и "sizeof"

    Рассмотрим пример
    Код:
    class Node
    {
    public:
    	Node* next;
    	Node* prev;
    	int data;
    	Node(int d=0, Node* p=0, Node* n=0):next(n), prev(p), data(d) {}
    };
    
    class NodeList
    {
    	Node* first;
    	Node* last;
    public:
    	Node* operator[](int idx)
    	{
    		Node* res=first;
    		for(int i=0; i<idx && res; i++)
    		{
    			res=res->next;
    		}
    		if(!res)
    			throw "Out of bound!";
    		return res;
    	}
    	NodeList(Node* f=0, Node* l=0):first(f), last(l) {}
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	Node n1(55);
    	Node n2(77, &n1);
    	n1.next=&n2;
    	NodeList list(&n1, &n2);
    	printf("%d %d\n", list[0]->data, list[1]->data);
    	return 0;
    }
    Является ли NodeList массивом? Безусловно, утверждает Ull9, ведь
    NodeList имеет доступ по индексу!
    Последний раз редактировалось Guffy; 07.10.2007 в 19:48.

  15. Вверх #15
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1489
    к чему йти смайлики? да безусловно, вмое определение массива нужно включить слово непрерывный
    100% не очем спорить.

    а теперь смешливый вы наш. обьэсните ваше остроумие здесь
    Цитата Сообщение от Guffy Посмотреть сообщение
    вот и почитай
    это класс, а не массив. не надо путать теплое с мягким. см. МСДН выше
    вы действитеьно считаете что два типа класс и массив нельзя сравнить? ну никак?
    теплое и мягкое?

    а если я вам приведу пример класса, обьекты которого будут иметь и индексирование и одинаковое время доступа ко всем элементам? как и массив?

    что ответите? теплый и мягкий?

  16. Вверх #16
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    не надо передергивать и обижаться, придирчивый Вы наш.
    Там имелось ввиду что ArrayList - не массив. Различные виды массивов в С# описываются в С# Programming Guide. По моему - всё это очевидно.

    А одинаковое время доступа по индексатору никак не дает право называться массивом - я так считаю. все дело в непрерывности.

    upd:справедливости ради надо отметить, что внутри себя ArrayList использует таки массив object[], но при увеличении размера происходит
    Код:
    object[] destinationArray = new object[value];
                    if (this._size > 0)
                    {
                        Array.Copy(this._items, 0, destinationArray, 0, this._size);
                    }
                    this._items = destinationArray;
    Но все равно я продолжаю настаивать - сам по себе ArrayList - не массив. Это wrapper вокруг обычного массива. Также как и List<T> (который, кстати, сделан так же - вокруг массива T[])
    Последний раз редактировалось Guffy; 07.10.2007 в 22:23.

  17. Вверх #17
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1489
    ну так возьмите формальное определение массива, хоть из той же википедии или откуда угодно и увидете что по формальным признакам ArrayList - массив. а врапер? ну ичто? в чем проблема`?
    в том что ArrayList класс? я лично не вижу в *этом* никакой проблемы.
    Последний раз редактировалось Ull9; 07.10.2007 в 22:50.

  18. Вверх #18
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    Цитата Сообщение от maxx™ Посмотреть сообщение
    MSDN всегда давал ответы практически на все вопросы.
    Ти гадаєш, я його не читав?

    Я два дні не міг розчехлитися як добавляти строки в ЛістБокс, Комбо і т.д., бо мислив у руслі С++ до якого звик. А МСДН який перечитав не раз мені відповіді не дав, бо я шукав неправильно.

    Я маю наувазі, що передивився всі члени і видивлявся щось накшталт "SetText(), AddString()" і т.д.
    А воно виявилося listBox1.Items.Add("Hello!");

    ps. вибачаюся що встряю в диспут великих, але здається в шарпі не має типів даних як таких,
    там ВСЕ - класи. Той же int, char, string і т.д.

    Reflector
    Thanks a lot!
    Последний раз редактировалось YOKO; 08.10.2007 в 09:09.
    Тут могла бути ваша реклама

  19. Вверх #19
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    Цитата Сообщение от Ull9 Посмотреть сообщение
    ну так возьмите формальное определение массива, хоть из той же википедии или откуда угодно и увидете что по формальным признакам ArrayList - массив. а врапер? ну ичто? в чем проблема`?
    в том что ArrayList класс? я лично не вижу в *этом* никакой проблемы.
    Предлагаю спуститься с высот "откуда угодно" на грешную землю темы топика - шарпа. И в этом случае мне не остается ничего другого как предложить Вам подумать еще раз.
    Смотрите
    Код:
    class Program
        {
            struct S
            {
                public int data;
                public void inc() {
                    data++;
                }
                public S(int d)
                {
                    data = d;
                }
            };
            static void Main(string[] args)
            {
                S[] a = new S[] { new S(10) };
                List<S> l = new List<S>(a);
                ArrayList al = new ArrayList(a);
                Console.WriteLine("{0} {1} {2}", a[0].data, l[0].data, ((S)al[0]).data);
                a[0].inc();
                l[0].inc();
                ((S)al[0]).inc();
                Console.WriteLine("{0} {1} {2}", a[0].data, l[0].data, ((S)al[0]).data);
            }
        }
    Вы можете предсказать вывод программы и обосновать его?

  20. Вверх #20
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    Цитата Сообщение от YOKO Посмотреть сообщение
    ...
    ps. вибачаюся що встряю в диспут великих, але здається в шарпі не має типів даних як таких,
    там ВСЕ - класи. Той же int, char, string і т.д.
    ...
    Вы почти правы. Только там есть Reference Types и Value Types. Поведение их несколько отличается.


Ответить в теме
Страница 1 из 4 1 2 3 ... ПоследняяПоследняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения