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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2008, 15:00   #1
Omedus
Пользователь
 
Аватар для Omedus
 
Регистрация: 01.11.2007
Сообщений: 27
Вопрос Работа с текстовыми файлами (Delphi)

Никогда не работал с файлами в Delphi, а тут пришлось.
Собственно задача: есть несколько объектов Memo и соответственно текст в них. Необходимо создать текстовый файл n.txt , в котором будут находиться соединённые куски текстов из разных Memo.
Помогите пожалуйста с данной проблемой. Заранее спасибо.
Генерация случайных чисел — слишком важное дело, чтобы оставлять её на волю случая.
Scientia potentia est
Omedus вне форума Ответить с цитированием
Старый 31.08.2008, 15:16   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Можно по простому так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var a:textfile;
begin
assignfile(a,'n.txt');
rewrite(a);
write(a,Memo1.text);
write(a,Memo2.text);
closefile(a);
end;
puporev вне форума Ответить с цитированием
Старый 14.01.2012, 17:52   #3
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию Работа с типизированным текстовым файлом (Delphi)

Нужен код занесения чисел в массив из текстового файла. Что-то не могу придумать как это реализовать.
Задача осложняется пробелами по обеим сторонам числа.
Вложения
Тип файла: txt untitle.txt (2.6 Кб, 169 просмотров)
Dmitro62 вне форума Ответить с цитированием
Старый 14.01.2012, 18:37   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от Dmitro62 Посмотреть сообщение
Нужен код занесения чисел в массив из текстового файла. Что-то не могу придумать как это реализовать.
Задача осложняется пробелами по обеим сторонам числа.
Грубо, дешего, сердито:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  mass=array of real;
var
  m:mass;
  T:textfile;
  i:integer;
begin
  if fileexists('untitle.txt') then
    begin
      assignfile(T,'untitle.txt');
      reset(T);
    end
  else
    begin
      writeln('file not found');
      readln;
      HALT;
    end;
  for i:=1 to 17 do  //количество первых ненужных строчек
    readln(T);
  setlength(m,0);
  i:=-1;
  while not EOF(T) do
    begin
      setlength(m,length(m)+1);
      inc(i);
      readln(T,m[i]);
    end;
  close(T);
  for i:=0 to high(m) do
    writeln(m[i]);
  readln
end.
результат:
Код:
-2.10338042895099E-0004
-4.21386634160670E-0004
-8.00313514376642E-0004
-1.35135659504664E-0003
-2.09333431899084E-0003
-3.02606891339315E-0003
-4.12225568965423E-0003
-5.32100216034969E-0003
-6.52390041170699E-0003
-7.59396413077939E-0003
-8.35945964930148E-0003
-8.62259785009655E-0003
-8.17253470040414E-0003
-6.80285542894534E-0003
-4.33197216662885E-0003
-6.24270622686429E-0004
 4.38959585207300E-0003
 1.06957522451188E-0002
 1.81860236799221E-0002
 2.66541900934706E-0002
 3.58006845480449E-0002
 4.52462500173402E-0002
 5.45539343719907E-0002
 6.32578885595453E-0002
 7.08965170743072E-0002
 7.70470374111574E-0002
 8.13584366258025E-0002
 8.35795848464366E-0002
 8.35795848464366E-0002
 8.13584366258025E-0002
 7.70470374111574E-0002
 7.08965170743072E-0002
 6.32578885595453E-0002
 5.45539343719907E-0002
 4.52462500173402E-0002
 3.58006845480449E-0002
 2.66541900934706E-0002
 1.81860236799221E-0002
 1.06957522451188E-0002
 4.38959585207300E-0003
-6.24270622686429E-0004
-4.33197216662885E-0003
-6.80285542894534E-0003
-8.17253470040414E-0003
-8.62259785009655E-0003
-8.35945964930148E-0003
-7.59396413077939E-0003
-6.52390041170699E-0003
-5.32100216034969E-0003
-4.12225568965423E-0003
-3.02606891339315E-0003
-2.09333431899084E-0003
-1.35135659504664E-0003
-8.00313514376642E-0004
-4.21386634160670E-0004
-2.10338042895099E-0004
 0.00000000000000E+0000
Последний ноль из-за строки с пробелами, можно тупо укоротить длину массива на единицу. А если заранее знаешь количество элементов, то просто не заморачиваешься с динамическими массивами.
Все тривиальное просто

Последний раз редактировалось whatever; 14.01.2012 в 18:52.
whatever вне форума Ответить с цитированием
Старый 15.01.2012, 14:55   #5
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию

Мне же не на паскале нужно, а на делфи без опенфайл.

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;

?

end;
Сам поробовал изменить вашу программу, но не получилось.

Последний раз редактировалось Dmitro62; 15.01.2012 в 15:06.
Dmitro62 вне форума Ответить с цитированием
Старый 15.01.2012, 15:00   #6
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

if OpenDialog1.Execute then
begin
s:= OpenDialog1.FileName; //путь к файлу
ну и соответсвенно далее все также
assignfile(f,s);
reset(f);
.........
closefile(f);
Базиля вне форума Ответить с цитированием
Старый 18.12.2012, 00:31   #7
mari94
Новичок
Джуниор
 
Регистрация: 18.12.2012
Сообщений: 1
По умолчанию

помогите пожалуйста 8 вариант
mari94 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите по работе с текстовыми файлами ЕвгениуS Помощь студентам 9 17.01.2010 15:10
Pascal работа с текстовыми файлами Andrey89 Помощь студентам 3 25.12.2007 19:21
Работа с Текстовыми файлами wwww Общие вопросы Delphi 5 29.10.2007 11:17
Работа с текстовыми файлами DartMrakkk Общие вопросы Delphi 3 14.07.2007 16:52
Задача с текстовыми файлами SpeedMaster Паскаль, Turbo Pascal, PascalABC.NET 4 02.04.2007 15:43