Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6

Открытие файла через OpenFileDIalog и записать имя файла в переменную

30.03.2015, 23:01. Показов 6182. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли в формах Pascal ABC Net, открыв файл через openfiledialog, записать в строковую переменную полное имя файла?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2015, 23:01
Ответы с готовыми решениями:

Записать в переменную заданный элемент файла
Составить программу ,которая в переменной n будет получать 5-й элемент вещественного файла Fx.

Открытие файла через программу
Здравствуйте! Можно ли запустить файл через программу (программно). Например есть файл File.124 Нужен такой код, который смог бы открыть...

В результирующий файл Outlet.out записать имя файла без указания пути к нему
помогите пожалуйста !!! Дан текстовый файл Inlet.in , содержащий строко-вые величины S , значения которых – полные имена файлов, т.е....

22
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
30.03.2015, 23:20
Можно.
Pascal
1
var s : string := OpenFileDialog1.FileName;
1
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
31.03.2015, 16:02  [ТС]
Спасибо, это я понял. Но возник еще вопрос. А именно, как считать данные с файла, если используешь openfilediolog.
Приведу пример:
Стоит задача считать матрицу неизвестного размера с файла. Если писать программу под командную строку,
то это будет выглядеть так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
type vector=array of array of real;
 var i,n,n1,n2,j:integer;
     t:vector;
     file1:text;
     string1:string;
begin
//в string1 заппрашивается у пользователя путь к файлу
assign(file1,string1);
 reset(file1);
 i := -1;
  while not Eof(file1) do begin
    Inc(i);
    SetLength(t, i + 1);
    j:= -1;
    while not Eoln(file1) do begin
      Inc(j);
      SetLength(t[i], j + 1);
      Read(file1, t[i, j]);
    end;
    ReadLn(file1);
  end;
  CloseFile(file1);
end.
Но как такую же операцию описать при использовании форм и openfiledialog?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
31.03.2015, 17:43
Да это все делается в разы проще:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{$apptype windows}
{$reference System.Windows.Forms.dll}
{$reference System.Core.dll}
 
uses System.Text, System, System.Windows.Forms, System.Net,
  System.IO, System.Linq; // добавляем вот эти 2 модуля
 
// ...
 
type 
  vector = array of real;
  matrix = array of vector;  
var 
  t : matrix;
 
function GetLine(L : string) : vector;
begin
  result := &Array.ConvertAll(L.Split('  '.ToCharArray()), StrToFloat);
end;
 
procedure MyButtonClick (sender: Object; e: EventArgs);
begin
  var OpenFileDialog1 : OpenFileDialog := new OpenFileDialog();
  if OpenFileDialog1.ShowDialog = DialogResult.OK then
  begin
    t := &File.ReadAllLines(OpenFileDialog1.FileName).Select(GetLine).ToArray();
  end;
end;
(это чистый WinForms, у меня нет .NET 4, чтобы проверить с редактором форм, но наверняка код практически не изменится, только описание обработчика нажатия на кнопку... Сам алгоритм останется тот же)
1
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
31.03.2015, 19:40  [ТС]
ругается.



И как после прочтения файла узнать размерность матрицы?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
31.03.2015, 23:57
Какое же это статическое поле? Это обычный enum (полностью - System.Windows.Forms.DialogResult, в нем - элемент OK), они там что вообще, белены объелись? Не знаю, как там реализовано с дизайнером форм, надо ждать кого-нибудь, у кого установлен .NET 4 и он может проверить, что происходит, и что за отсебятину навертели эти разработчики.
Цитата Сообщение от Flame444 Посмотреть сообщение
И как после прочтения файла узнать размерность матрицы?
Как обычно:
Pascal
1
2
    var rows : integer := t.Length; // число строк
    var cols : integer := t[0].Length; // число столбцов
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
01.04.2015, 08:35
в формах примерно так (не уверен, что правильно). У OpenFileDialog1 есть событие FileOk, оно и вызывается, если нажата кнопка "открыть"
Pascal
1
2
3
4
5
6
7
8
9
10
11
implementation
 
procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
  openFileDialog1.ShowDialog;
end;
 
procedure Form1.openFileDialog1_FileOk(sender: Object; e: ComponentModel.CancelEventArgs);
begin
  label1.Text:=openFileDialog1.FileName;
end;
1
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
02.04.2015, 17:43  [ТС]
Чуть изменил, вроде работает. Единственное не пойму, как в формах обращаться к отдельному элементу матрицы?
Я так понял, привычное в паскале t[i,j] не работает.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
02.04.2015, 17:45
Да все работает, что вы заладили, "формы, формы". Что, в формах другой синтаксис Паскаля? Все ТОЧНО так же работает, никаких изменений.
1
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
02.04.2015, 18:10  [ТС]
Спасибо. Вижу. Ошибка в другом)
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 13
23.04.2021, 14:25
Подскажите пожалуйста, что нужно сюда
Pascal
1
2
3
4
5
6
7
8
9
10
11
implementation
 
procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
  openFileDialog1.ShowDialog;
end;
 
procedure Form1.openFileDialog1_FileOk(sender: Object; e: ComponentModel.CancelEventArgs);
begin
  label1.Text:=openFileDialog1.FileName;
end;
добавить, чтоб из вордовского документа текст загнать в richtextbox. Буду очень признательный
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
23.04.2021, 14:56
А нельзя текст предварительно „загнать“ в простой текстовый файл?
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 13
23.04.2021, 15:09
Лишняя работа, но теоретически - можно
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
23.04.2021, 15:12
Цитата Сообщение от Konst_G Посмотреть сообщение
Лишняя работа
будет затратить туеву хучу времени на чтение вордовского файла, особенно если на компьютере нет ms office…
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 13
23.04.2021, 15:31
А, нет, попробывал, вот такая чепуха получается:
у3dЯИґЫк†<&пуьxћ7‰Ъ“,uF U’‹т=‚,牴РYЇго#Gi*8Ms-4…ЪсоNДЉђеNd^ЂФ (З’„
YСBC­‹cЕ†ђQеY…°Г~.3ЄнQpAЩ nІ‡3Р”SMq t‹љ€VHОjdq-У
и это чистый текст, без таблиц, рисунков, графики

Добавлено через 8 минут
Если документ сохранить как обычный текст - то все норм

Добавлено через 6 минут
... И тогда вопрос можно перефразировать: "...из текстового документа текст загнать в richtextbox. " Бог с ним тем вордовским документом, вручную пусть попересохраняют в txt
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
23.04.2021, 15:34
А кодировка текстового файла какая?

Добавлено через 2 минуты
И отладчик вам на что?

Добавлено через 48 секунд
https://docs.microsoft.com/ru-... ew=net-5.0
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 13
23.04.2021, 16:20
Никто не реагирует...
Ладно, попробую так:
есть код:
Pascal
1
2
3
OpenFileDialog1.ShowDialog();
  s:=OpenFileDialog1.FileName;
richtextBox2.Text := System.IO.File.ReadAllText(s);
Изображения
 
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 13
23.04.2021, 16:31
По букварю в richtextBox2 после открытия текстового файла с именем s, в котором есть три простых предложения типа "мама мыла раму", должны они родимые и появиться. А появляется то что видно на рисунке
Причем пробую открывать файл *. txt и *.rtf всеравно то, что на скрине
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
23.04.2021, 17:25
ReadAllText — у него два параметра.
Первый — путь и имя файла
Второй — кодировка.

Так вот, я уже спрашивал: https://www.cyberforum.ru/post15441815.html
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 13
30.04.2021, 12:33
Просмотрел материал по ссылке: что-то ничего не получается. Прошу помочь конкретнее по кодировке и отладить. Спасибо
С параметрами не разобрался.

Добавлено через 6 минут
System.IO.File.ReadAllText(s, я так понял, вот здесь должен быть какой -то параметр кодировки текста);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2021, 12:33
Помогаю со студенческими работами здесь

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

Получить только имя файла через openFileDialog
Необходимо получить только имя файла через openFileDialog, чтобы в textBox отображалось название файла, его расширение, но не указывался...

Записать имя файла в переменную
Здравствуйте, Возможно ли, вместо того , чтобы использовать SAD.open(&quot;Batch.cmd&quot;) ofstream SAD; SAD.open(...

Открытие файла через переменную
Здравствуйте, вот у меня к примеру будет такой код: string cfg; getline(cin, cfg); cfg += &quot;.cfg&quot;; ofstream access_file; ...

Имя файла и нового листа через переменную
Задача: в папке есть несколько текстовых файлов, каждый заканчивается &quot;_1.txt&quot;, &quot;_2.txt&quot;, и тд. Папку и полный путь задаю в коде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru