Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2013, 20:34   #1
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию функция

Код:
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Media;

 

 


namespace testmillioner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
       
        int otvetovverno = 0;
        string asked = "";
        int file_number = 0;
        int numberofthruth = 0;
        List<string[]> files = new List<string[]>();
        int count = 0;
        void Find()//функция нахождения файла
        {
            try
            {

                Random rand = new Random(numberofthruth);
            METKA:
                int x = rand.Next(count);///проблемое место сюда нужно какую то переменную,которая при загрузке формы будет считывать 3 файла и сюда всавляться и рандом будет браться ровно а не только ограниченно
                label1.Text = files[file_number][x * 6];
                if (asked.Contains(x.ToString())) { goto METKA; }
                asked += x.ToString();
                numberofthruth = x * 6 + 5;
                Rand(files[file_number], x * 6 + 1);
            }
            catch { }
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            radioButton1.Checked = false;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            count = System.IO.File.ReadAllLines("Test\\Уровень1.txt").Length & System.IO.File.ReadAllLines("Test\\Уровень2.txt").Length & System.IO.File.ReadAllLines("Test\\Уровень3.txt").Length;//проблемое место
            count = count / 6;//проблемое место


            try
            {
                files.Add(File.ReadAllLines(("Test\\Уровень1.txt"), Encoding.GetEncoding("utf-8")).Where(n => n != "").ToArray());
                files.Add(File.ReadAllLines(("Test\\Уровень2.txt"), Encoding.GetEncoding("utf-8")).Where(n => n != "").ToArray());
                files.Add(File.ReadAllLines(("Test\\Уровень3.txt"), Encoding.GetEncoding("utf-8")).Where(n => n != "").ToArray());
                if (files[0].Length < 30 || files[1].Length < 30 || files[2].Length < 30)//60
                {
                    throw (null);
                }
                Find();
            }
            catch { MessageBox.Show("Ошибка чтения файлов с вопросами, либо данные в файле некорректны!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop); }
        }
Вот значит в чем проблема

Это программа тестирование
которая считывает информацию с текстовых файлов,сейчас сделано так,что бы все файлы были одного размера например 1 файл 10 вопросов 2 файл 10 вопросов и 3 файл 10 вопросов)

мне нужно сделать универсально,что бы один мог быть 7 вопросов ,второ1 12 вопросов а третий файл 5 вопросов например

Вы как гуру с# подскажите ,пожалуйста
linkoln_7 вне форума Ответить с цитированием
Старый 22.03.2013, 22:19   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Вопрос номер раз: что у Вас вообще делает оператор & применительно к длинам массивов?
Вопрос номер два: чем не устраивает взять минимум от этих длин? Вернее, так: как должна вести себя программа, если количество вопросов в разных файлах отличается? Если нужно использовать для каждого файла его максимум, то хранить надо три длины, а не одну.

И уберите хотя бы goto, в этом коде в нём совершенно нет необходимости.
Abstraction вне форума Ответить с цитированием
Старый 22.03.2013, 22:41   #3
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию

умножение что бы сразу с 3 файлами работало,я не знаю вообще что делать и как исправить,долго пытался
нужно что бы он в count при загрузке формы считывал инфу о каждом файле и эту переменную int x = rand.Next(count)
linkoln_7 вне форума Ответить с цитированием
Старый 22.03.2013, 23:53   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
нужно что бы он в count при загрузке формы считывал инфу о каждом файле и эту переменную
Информация о трёх файлах в один int не влезет. То есть, впихнуть можно, но результату Вы не будете рады.

И оператор & - это не умножение.
Abstraction вне форума Ответить с цитированием
Старый 22.03.2013, 23:56   #5
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию

а как лучше это оформить что бы можно было в random впихнуть?
linkoln_7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция. Gtnz8 Помощь студентам 14 12.08.2012 00:40
Функция KuckaMAXHATKA Общие вопросы C/C++ 1 22.02.2011 01:00
Функция Sam04 Помощь студентам 1 11.09.2008 13:51
Функция ZiLi Microsoft Office Excel 1 05.09.2008 18:37
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50