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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2015, 00:16   #1
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию получить txt файлы

вот есть строка кода на c#:
string[] fileList = Directory.GetFiles(@"C:\SomeDir\", "*.txt");
как мне этот код получить на делфи 7 то есть
list.LoadFromFile('полный путь к папке в которой только txt файлы');
то есть чтобы загружал все txt из мною заданной директории....
komra2 вне форума Ответить с цитированием
Старый 09.09.2015, 07:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну только поиском. Пример поиска по маске тут: http://www.programmersforum.ru/showthread.php?t=6639
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2015, 09:49   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы такой цикл предложил - тыц

переписал бы только так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
  S: TStringsList;
begin
  S:=TStringList.Create;
  if FindFirst('папка\*.txt',faAnyFile,SR) = 0 then
  repeat
    S.LoadFromFile('папка\'+SR.Name);
    Memo1.Text:=Memo1.Text+#13+S.Text;
  until FindNext(SR) <> 0;
  FindClose(SR);
  FreeAndNil(S)
end;

если нужно в Delphi, то почему вопрос в разделе C# ?! Перенести?


__

Последний раз редактировалось Serge_Bliznykov; 09.09.2015 в 09:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.09.2015, 14:06   #4
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы такой цикл предложил - тыц

переписал бы только так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
  S: TStringsList;
begin
  S:=TStringList.Create;
  if FindFirst('папка\*.txt',faAnyFile,SR) = 0 then
  repeat
    S.LoadFromFile('папка\'+SR.Name);
    Memo1.Text:=Memo1.Text+#13+S.Text;
  until FindNext(SR) <> 0;
  FindClose(SR);
  FreeAndNil(S)
end;

если нужно в Delphi, то почему вопрос в разделе C# ?! Перенести?


__
нет, не надо,
понимаешь в чем дело, у меня есть папка на раб столе, и в этой папке есть тхт и только тхт файлы, так чтобы не писать все время list.LoadFromFile('///');
написать в делфи из c#
@"C:\SomeDir\", "*.txt"); , мне не нужен не мемо1 не что-то другое, только list.LoadFromFile('///','*.txt');
komra2 вне форума Ответить с цитированием
Старый 09.09.2015, 14:12   #5
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

в какой-та проге на делфи 7 нашел вот такой код, что он означает?
Код:
cDir := 'C:\\';
FileName := '*.*';
ChDir(cDir);
if FindFirst(FileName,faArchive,SearchRec)=0 then
repeat
if (SearchRec.Attr and faAnyFile)=SearchRec.Attr then
begin
if ExtractFileExt(SearchRec.Name)='.txt' then
begin
ListView1.Items.Add.Caption := SearchRec.Name;
end;
end;
until FindNext(SearchRec)<>0;
end;

Последний раз редактировалось Stilet; 09.09.2015 в 14:42.
komra2 вне форума Ответить с цитированием
Старый 09.09.2015, 14:42   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

все же эта тема должна быть в разделе Делфи.
ибо речь о Делфи(не смотря на то что вы хотите за основу взять код из C#)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.09.2015, 14:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Он означает
Цитата:
Найти все файлы на диске С: с расширением ТХТ без сканирования по вложенным каталогам. Найденное добавить в ListView1
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2015, 15:36   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
Найденное добавить в ListView1
не, поправлю:

Цитата:
найденные имена файлов добавить в ListView1
впрочем,
исходный код TC на C#
Код:
string[] fileList = Directory.GetFiles(@"C:\SomeDir\", "*.txt");
именно получаем СПИСОК имён файлов.
т.е. это и есть эквивалентный код!


правда, непонятно, при чём здесь LoadFromFile, но это уже никому не ведомо, конечно...

_

Последний раз редактировалось Serge_Bliznykov; 09.09.2015 в 15:38.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.09.2015, 20:43   #9
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не, поправлю:



впрочем,
исходный код TC на C#
Код:
string[] fileList = Directory.GetFiles(@"C:\SomeDir\", "*.txt");
именно получаем СПИСОК имён файлов.
т.е. это и есть эквивалентный код!


правда, непонятно, при чём здесь LoadFromFile, но это уже никому не ведомо, конечно...

_
мне надо чтобы было бы написано list.LoadFromFile('путь');
поточнее надо вот так:
Код:
list.LoadFromFile('путь/.txt');
list.LoadFromFile('путь/.txt');
list.LoadFromFile('путь/.txt');
list.LoadFromFile('путь/.txt');
list.LoadFromFile('путь/.txt');
list.LoadFromFile('путь/.txt');

или же тогда на c# переделать вот этот код:
 procedure TForm1.Button1Click(Sender: TObject);
 var
 list:tstringlist;
 s,a:string;
 i:integer;
  begin
 list:=tstringlist.Create;
 list.LoadFromFile('1.txt');
 list.LoadFromFile('2.txt');
 list.LoadFromFile('3.txt');
 Edit1.Text:=UpperCase(Edit1.Text);
 for I := 0 to List.Count - 1 do
 begin
 s:=list[0]; 
 List.Delete(0); 
 a:=MD5DigestToStr(MD5String(s));
 if a=edit1.Text then 
 begin
 Edit2.Text:=s; 
 break;
 end;
 end;
 end;
 end.

Последний раз редактировалось Stilet; 10.09.2015 в 09:13.
komra2 вне форума Ответить с цитированием
Старый 10.09.2015, 09:57   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
list:=tstringlist.Create;
 list.LoadFromFile('1.txt');
 list.LoadFromFile('2.txt');
 list.LoadFromFile('3.txt');
это написана глупость!

после этих манипуляций в list будет содержимое только ОДНОГО (последнего) загруженного файла. В данном случае - только 3.txt будет в list


ну и операция удаления из списка - тоже достаточно затратная.
вместо:
Цитата:
Код:
for I := 0 to List.Count - 1 do
begin
 s:=list[0]; 
 List.Delete(0);
лучше написать:
Код:
for I := 0 to List.Count - 1 do
begin
 s:=list[I];
без Delete будет намного эффективней!

_

Последний раз редактировалось Serge_Bliznykov; 10.09.2015 в 10:02.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить текст из txt nibufep PHP 6 23.12.2014 19:41
Открыть txt, doc, jpg файлы на С++ Builder mikisss Фриланс 1 11.06.2014 14:43
Не записываются файлы txt KIG C++ Builder 1 15.08.2013 10:01
Как с файла .txt получить .exe amator_roma Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 11.03.2011 03:39