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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2012, 14:46   #1
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию Delphi7. Запись в файл(проблема)

День добрый. Проблемы такие:
1. Имеется 10 Edit-ов.
Первый отвечает за имя файла. Все остальные должны в него записываться.
Перечитываю учебник, но сделать на практике не могу.
Попробовал и так FileHandle:=FileCreate('prt\'+Edit1 .Text+'.txt');, но тогда записывается всё в строчку и *кваказябрами, а не цифрами.
Пробовал var f:file of real; s2:real;
...
s2:=StrToFloat(Edit2.Text); AssignFile(f,'prt\'+Edit1.Text+'.tx t');
Rewraite(f); Write(f,s2); Ошибку на Write выдаёт.
Ничего не получается. Надо что бы записывал каждый Edit в отдельную строку, причём цифры не фиксированные и каждый раз разной длинны.
2. Можно ли как то ассоциировать определённое слово с определённой цифрой, ввожу в Edit слово, а запись в файл идёт цифрой?
Artsiom вне форума Ответить с цитированием
Старый 02.08.2012, 14:50   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я бы замутил TStringList. Поскидывал туды все Edit'ы и сохранил одной строчкой кода (и прочел кстати, также не напрягаясь).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 02.08.2012, 16:30   #3
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Я бы замутил TStringList.
Спасибо!

А что можно по поводу
"2. Можно ли как то ассоциировать определённое слово с определённой цифрой, ввожу в Edit слово, а запись в файл идёт цифрой?"
сказать?
Artsiom вне форума Ответить с цитированием
Старый 02.08.2012, 22:16   #4
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Цитата:
Можно ли как то ассоциировать определённое слово с определённой цифрой, ввожу в Edit слово, а запись в файл идёт цифрой?
Смотря как и где вы хотите организовать хранение этих ассоциации.
Можно реализовать с помощью множества, можно с помощью массива строк или объекта класса TStringList. Наиболее универсальный способ с помощью TStringList. Предварительно заполните TStringList программно с помощью Add, или загрузив из предварительно подготовленного файла с помощью LoadFromFile.

И опять же, если вы хотите ассоциировать слова с порядковыми номерами строк в массиве (в TStringList) то можно воспользоваться методом IndexOf, тогда содержимым файла должен быть просто список слов, каждое слово с новой строки.
Код:
слово1
слово2
словосочетание
например:
Код:
var
  List1:TStringList;
  i,j,x:integer;
begin
  List1:=TStringList.Create;
  List1.LoadFromFile('input.txt');
  i:=List1.IndexOf('слово1'); // в i занесется 0
  j:=List1.IndexOf('словосочетание'); // в j занесется 2
  x:=List1.IndexOf('что-то'); // в x занесется -1 - слова нет в списке
  ...
  FreeAndNil(List1);


Если вы хотите привязать слова к каким-то произвольным номерам, то тогда можно воспользоваться свойством Values (чувствительно к регистру!), при этом содержимое файла должно иметь структуру: слово=число
Например:
Код:
слово1=23
слово2=43
словосочетание=354
вариант реализации
Код:
var
  List1:TStringList;
  i,j,x:integer;
begin
  List1:=TStringList.Create;
  List1.LoadFromFile('input.txt');
  i:=StrToIntDef(List1.Values['слово1'],-1); // в i занесется 23
  j:=StrToIntDef(List1.Values['словосочетание'],-1); // в j занесется 354
  x:=StrToIntDef(List1.Values['что-то'],-1); // в x занесется -1 - слова нет в списке
  ...
  FreeAndNil(List1);

Последний раз редактировалось astecenko; 03.08.2012 в 08:02.
astecenko вне форума Ответить с цитированием
Старый 03.08.2012, 01:53   #5
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Спасибо большое!
Всё теперь точно последний вопрос.
Даже не знаю как сформулировать.
Делится число, к примеру 7/2=не 3.5, а 4.
9/4=3 и тд.
Это как то можно сделать?
Artsiom вне форума Ответить с цитированием
Старый 03.08.2012, 02:04   #6
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Цитата:
Делится число, к примеру 7/2=не 3.5, а 4.
9/4=3 и тд.
RoundTo кажеться...
Delphi_ProGer вне форума Ответить с цитированием
Старый 03.08.2012, 02:18   #7
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Artsiom
Функция Round.
Цитата:
9/4=3 и тд.
В этом случае округление пойдет в меньшую сторону, будет 2.

Также вспомнился такой нюансик, если получили половину, то округление будет в пользу четного числа, в противном случае будет считаться округление в меньшую сторону
Пример
9/2=4.5 => 4
11/2=5.5 => 6

Последний раз редактировалось Базиля; 03.08.2012 в 02:31.
Базиля вне форума Ответить с цитированием
Старый 03.08.2012, 02:36   #8
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Из справки:
Цитата:
RoundTo function
Delphi syntax:

type TRoundToRange = -37..37;
function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;

Expression Value

RoundTo(1234567, 3) 1234000
RoundTo(1.234, -2) 1.23
RoundTo(1.235, -2) 1.24
RoundTo(1.245, -2) 1.24
UPDATED
+
uses Math;

Последний раз редактировалось Delphi_ProGer; 03.08.2012 в 02:50.
Delphi_ProGer вне форума Ответить с цитированием
Старый 03.08.2012, 02:47   #9
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Delphi_ProGer
Я и не отрицал что это тоже вариант
В этом случае тогда надо не забыть про модуль мат. функций.
Базиля вне форума Ответить с цитированием
Старый 03.08.2012, 02:49   #10
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Базиля, я только хотел лишь дополнить свой ответ, т.е. это не вам ответ
Delphi_ProGer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись полученных данных Delphi7 -Jack- Работа с сетью в Delphi 2 08.07.2012 15:44
Delphi7. Запись в Word из другого файла freeeeez Общие вопросы Delphi 0 08.01.2011 23:49
Delphi7. записи во внешний файл несколько вещественных чисел sara4ka Помощь студентам 5 08.05.2010 11:40
Запись структуры TList в файл, проблема с длинными строками типа AnsiString Xardas Общие вопросы Delphi 2 24.05.2009 20:18