Member 13356973 Ответов: 1

Как записать значения из текстового файла в checkbox в C#


У меня есть программа, которая записывает текстовые файлы с некоторыми переменными, и мне нужно добавить эти текстовые файлы в контрольный список и отправить выбранные на ftp-сервер.
Я оставлю здесь код для создания этих текстовых файлов:

writer.WriteLine($"{numcont};{numenc};{numfatura};{data:dd/MM/yyyy};{valorStr};{zona};");

foreach (ItemTransactionDetail detail in transaction.Details)
{
    var item = MyApp.DSOCache.ItemProvider.GetItem(
        detail.ItemID, 
        MyApp.SystemSettings.BaseCurrency);

    double taxRate = MyApp.DSOCache
                          .TaxesProvider
                          .GetTaxRateFromTaxableGroupID(
                              detail.TaxableGroupID, 
                              "PRT",
                              "CON");

    string barcode = item.BarCode;

    writer.WriteLine($"{barcode};{taxRate};{precoantesdiscStr};{preconetStr};{quantidade};{bonus}");
}


Что я уже пробовал:

Чтобы заполнить контрольный список я проверил это:

Но это просто оставляет мой контрольный список пустым

void Form1_Load(object EventArgs)
{
    LoadFileNames();
}

void LoadFileNames()
{
    string path = @"C:\Users\HP8200\Desktop\Faturas Teste";
    string fileNameOnly = "";

    // here you can change file extension according to your needs.
    foreach (var item in System.IO.Directory.GetFiles(path,"*.txt")) 
    {
        fileNameOnly = System.IO.Path.GetFileNameWithoutExtension(item);
        
        // actually adding files names to checkbox listing
        checkedListBox1.Items.Add(fileNameOnly);
    }
}

Graeme_Grant

Есть вопрос?

Member 13356973

да, по названию у вас есть вопрос

Karthik_Mahalingam

в чем проблема

Member 13356973

Код, который я тестировал, не работал. В нем нет никакой ошибки, но просто оставьте мой контрольный список пустым

1 Ответов

Рейтинг:
4

Graeme_Grant

Попробуйте переместить эту строку в ее собственную переменную:

foreach (var item in System.IO.Directory.GetFiles(path,"*.txt"))

к:
var files = System.IO.Directory.GetFiles(path,"*.txt");
foreach (var item in files)
{
    // do processing here
}

Затем установите на нем точку останова, перешагните через нее и убедитесь, что возвращены имена файлов... Я предполагаю, что файлов нет, и именно поэтому список пуст...


Member 13356973

Я могу гарантировать вам, что на пути есть текстовые файлы. Спасибо за помощь

Graeme_Grant

Вы сделали отладочный тест, как было предложено? Может быть, есть, но, может быть, не на том пути, который вы ожидаете...

Graeme_Grant

У вас есть "жестко закодированный путь" в методе Load, но мы не видим, что вы использовали в методе Save - код неполный.

Вы можете запрограммировать путь следующим образом:

var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "Faturas Teste");

Member 13356973

Это сработало, спасибо моему австралийскому другу

Graeme_Grant

Рад слышать! :)

BillWoodruff

+5