Нужно использовать файл для заполнения массива, затем список. Мне удалось что-то заполнить, но я не могу отобразить его правильно. совет? - PullRequest
0 голосов
/ 15 июня 2019

По сути, у меня есть назначение с одной программой, мне нужно записать некоторую информацию в файл, а затем в другом использовать этот файл, чтобы заполнить список именами и функцией поиска.Моя текущая проблема заключается в том, что у меня много проблем с получением файла для правильного чтения.Соответствующая информация: информация, которую записывает другой файл, включает имя, номер телефона, номер ячейки, номер пейджера, голосовую почту и адрес электронной почты.Все записывается в файл через текстовые поля ввода.

Основной метод, который я пробовал, состоял в том, чтобы просто добавить файл .txt в проект в качестве актива, чтобы облегчить доступ, но он просто не делает этого.новый метод использует сборщик для выбора файла.

    public sealed partial class MainPage : Page
    {
        internal struct Information
        {
            internal string Name;
            internal string Phone;
            internal string Pager;
            internal string Cell;
            internal string Voicemail;
            internal string Email;
        }

        private Information[] Info = new Information[4];

        public MainPage()
        {
            this.InitializeComponent();

            Prepare_Array();
        }
        private async void Prepare_Array()
        { 
            try
            {
                                FileOpenPicker openPicker = new FileOpenPicker();

                openPicker.ViewMode = PickerViewMode.List;

                openPicker.SuggestedStartLocation = PickerLocationId.ComputerFolder;

                openPicker.FileTypeFilter.Add(".txt");

                StorageFile file = await openPicker.PickSingleFileAsync();

                if (file != null)
                {
                    Info_Listbox.Items.Add(Info[1].Name);
                }
            }

            catch { }
        }

Текстовый файл, который я пытаюсь использовать.

Name: Joker Phone Number: 888-888-8888 Pager Number: 90009 Cellphone Number: 555-555-5555 Voicemail Number: 333-333-3333 Email Address: Joke@Joker.Net

Name: Johnny Phone Number 123-456-7890 Pager Number: 19991 Cellphone Number: 098-765-4321 Voicemail Number: 567-843-1209 Email Address: Johnny@Joker.Net

Я ожидал, что в списке будет что-то (даже вся запись была приемлемой, я мог бы работать оттуда).Фактический результат был Windows.Foundation.Collections.IVector'1

1 Ответ

0 голосов
/ 16 июня 2019

попробуйте

некоторые объявления (для контекста) :

struct Information
{
    string Name;
    string Phone;
    string Pager;
    string Cell;
    string Voicemail;
    string Email;
}

public Information[] info = new Information[4];

некоторые другие объявления (внутри этого метода загрузки структуры) :

OpenFileDialog openDialog = new OpenFileDialog();
string path;
string line;
string[] attributes = new string[6];

и теперь код

openDialog.Title = "Select A File";
openDialog.Filter = "Text Files (*.txt)|*.txt" + "|" + 
                    "All Files (*.*)|*.*";

if (openDialog.ShowDialog() == DialogResult.OK)
{
    for(int i = 0; i < info.Length; i++)
    {
        path = openDialog.FileName;

        line = File.ReadLine(path);
        attributes = line.Remove("Name: ").Remove("Phone Number ").Remove("Pager Number: ")
            .Remove("Cellphone Number: ").Remove("Voicemail Number: ").Remove("Email Address: ").Split(' ');

        info[i].Name = attributes[0];
        info[i].Phone = attributes[1];
        info[i].Pager = attributes[2];
        info[i].Cell = attributes[3];
        info[i].Voicemail = attributes[4];
        info[i].Email = attributes[5];
    }
    foreach(Information inf in info)
    {
        Info_Listbox.Items.Add(inf.Name);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...