Как открыть файл на компьютере по точному совпадению без учета регистра

ZAI.ONE

Client
Регистрация
02.05.2014
Сообщения
79
Реакции
23
Баллы
8
Привет.

Нужна помощь, как организовать проект в Zennoposter.

В папке 3 файла с именами:

файл номер один.txt
файл номер.txt
Фай номер Два.txt

У меня в переменной в первом цикле хранится ключевое слово "файл номер" - мне надо взять именно этот файл, а не другие.

А берет сейчас первый попавшийся!

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

Нужна помощь, как организовать проект в Zennoposter.

В папке 3 файла с именами:

файл номер один.txt
файл номер.txt
Фай номер Два.txt

У меня в переменной в первом цикле хранится ключевое слово "файл номер" - мне надо взять именно этот файл, а не другие.

А берет сейчас первый попавшийся!

Помогите, пожалуйста. Как сделать, чтобы правильный файл брать?
Можно пример ваших кубиков чем вы берете и как? И что в переменной? Скрины пожалуйста.
 
  • Спасибо
Реакции: ZAI.ONE
Можно пример ваших кубиков чем вы берете и как? И что в переменной? Скрины пожалуйста.

Я неправильно делаю, т. к. не разбираюсь особо.

А как правильно делать? Какими кубиками?
 
Я неправильно делаю, т. к. не разбираюсь особо.

А как правильно делать? Какими кубиками?
Напишите что вы хотите открыть и для чего? Если запуск программы физически, то это делать через:
70009
 
  • Спасибо
Реакции: ZAI.ONE
#Есть файлы, которые нужны нам для того, чтобы от туда взять столбец и добавить его в список. Название файла, должно совпадать с переменной, но из-за того что Название файла и Переменная могут быть примерно такими:
[Файл один.csv / 'файл'; фаЙл двА.csv / 'файл двА' ] поиск не удаётся выполнить. Я вижу следующее решение: Преобразовать и название файла и переменную в маленкие символы и сопостовлять их.


1. Мы собираем csv файлы в директории в список. Для этого кубиком Директории-Получить список файлов. (прикрепил)
2. Ищем совпадение с помощью кода
C#:
Развернуть Свернуть Копировать
var list = project.Lists["files_directory"];
var list = project.Lists["files_directory"];
string needle = project.Variables["get_header"].Value;
foreach(string data in list)
{
if(data.Contains(needle))
return data;
}
return "ничего не найдено";

Но поиск выдает и близкие результаты: [файл смотреть.csv; файл просмотреть.csv; смотреть.csv / 'смотреть'], а точный поиск работать, как я понимаю тоже не будет, так как есть и путь и формат .csv.
3. К сожалению, не знаю, как превести 1000 файлов к строчным символам, чтобы не было [фАйл.csv; ФАЙЛ смотреть.csv]
 

Вложения

  • 1adf180a-300f-4935-9155-47ac6f577b74.jpg
    1adf180a-300f-4935-9155-47ac6f577b74.jpg
    15,5 KB · Просмотры: 7
#Есть файлы, которые нужны нам для того, чтобы от туда взять столбец и добавить его в список. Название файла, должно совпадать с переменной, но из-за того что Название файла и Переменная могут быть примерно такими:
[Файл один.csv / 'файл'; фаЙл двА.csv / 'файл двА' ] поиск не удаётся выполнить. Я вижу следующее решение: Преобразовать и название файла и переменную в маленкие символы и сопостовлять их.


1. Мы собираем csv файлы в директории в список. Для этого кубиком Директории-Получить список файлов. (прикрепил)
2. Ищем совпадение с помощью кода
C#:
Развернуть Свернуть Копировать
var list = project.Lists["files_directory"];
var list = project.Lists["files_directory"];
string needle = project.Variables["get_header"].Value;
foreach(string data in list)
{
if(data.Contains(needle))
return data;
}
return "ничего не найдено";

Но поиск выдает и близкие результаты: [файл смотреть.csv; файл просмотреть.csv; смотреть.csv / 'смотреть'], а точный поиск работать, как я понимаю тоже не будет, так как есть и путь и формат .csv.
3. К сожалению, не знаю, как превести 1000 файлов к строчным символам, чтобы не было [фАйл.csv; ФАЙЛ смотреть.csv]

Попробуйте так, если код у вас работает без регистра. Хотя не уверен что с листом сработает конечно.
C#:
Развернуть Свернуть Копировать
var list = project.Lists["files_directory"].Value.ToLower();
string needle = project.Variables["get_header"].Value.ToLower();
foreach(string data in list)
{
if(data.Contains(needle.ToLower()))
return data;
}
return "ничего не найдено";
 
  • Спасибо
Реакции: ZAI.ONE
Добавление этого кода, вообще не даёт выполнять любые кубики в проекте. У вас последняя версия PM? Может вы подключаете какую-то внешнюю библиотеку для zenno?
 
Последнее редактирование:
Добавление этого кода, вообще не даёт выполнять любые кубики в проекте. У вас последняя версия PM? Может вы подключаете какую-то внешнюю библиотеку для zenno?

Ну как я и сказал, наверное лист нельзя так подставлять. Вот попробуйте так, если не подойдет, можете написать в телеграм, попробую по удаленке сделать более проще на кубиках, если верно *докопаюсь до сути...*
C#:
Развернуть Свернуть Копировать
var list = project.Lists["files_directory"];
string needle = project.Variables["get_header"].Value.ToLower();
foreach(string data in list)
{
if(data.Contains(needle.ToLower()))
return data;
}
return "ничего не найдено";
 
  • Спасибо
Реакции: ZAI.ONE
Если нужно точное совпадение, то поиск в файлах делать совсем не обязательно. Надо сразу формировать путь к файлу. имя директории+имя файла+расширение.
C#:
Развернуть Свернуть Копировать
string dir = project.Variables["dir"].Value.ToLower();
string needle = project.Variables["get_header"].Value.ToLower();
string path = (dir+needle+".csv").ToLower();
return path;
 
  • Спасибо
Реакции: ZAI.ONE
Если нужно точное совпадение, то поиск в файлах делать совсем не обязательно. Надо сразу формировать путь к файлу. имя директории+имя файла+расширение.
C#:
Развернуть Свернуть Копировать
string dir = project.Variables["dir"].Value.ToLower();
string needle = project.Variables["get_header"].Value.ToLower();
string path = (dir+needle+".csv").ToLower();
return path;
Благодарю, почти работает. Сам файл (таблица) не подгружается. То есть я задаю путь [wtf1] через переменную, он подтягивает файл. Показывает его в превью, но если нажать просмотр таблицы, то она пустая [wtf2]. Сами данные подгрузятся, если перезагрузить настройки таблицы (где-нибудь поставить галочку и потом убрать, к примеру распознавать данные).
 

Вложения

  • wtf1.PNG
    wtf1.PNG
    19,7 KB · Просмотры: 8
  • wtf2.PNG
    wtf2.PNG
    7,8 KB · Просмотры: 8
Благодарю, почти работает. Сам файл (таблица) не подгружается. То есть я задаю путь [wtf1] через переменную, он подтягивает файл. Показывает его в превью, но если нажать просмотр таблицы, то она пустая [wtf2]. Сами данные подгрузятся, если перезагрузить настройки таблицы (где-нибудь поставить галочку и потом убрать, к примеру распознавать данные).
Так, проблема решена, привязкой таблицы через экшн.
То есть путь к таблице не прописывается в настройках таблицы, там только ставится галочка "Загружать из файла".
Потом используется экшн Таблицы - Привязать к файлу
 

Вложения

  • wtf3.PNG
    wtf3.PNG
    3,9 KB · Просмотры: 4
  • Спасибо
Реакции: Koqpe
C#:
Развернуть Свернуть Копировать
string needle = "";//тут получаем название файла из переменной
var table = project.Tables["tablica"];
string path = @"d:\";
foreach(string file in Directory.GetFiles(path))
    if(needle.Trim().ToLower() == Path.GetFileNameWithoutExtension(file).Trim().ToLower()){
        table.Bind(file);//привязка к таблице
        return "файл привязан к таблице";
    }
throw new Exception("искомый файл не найден");
 
  • Спасибо
Реакции: ZAI.ONE
как можно работать внутри открывшейся программы?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)