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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2015, 13:26   #1
Kinder424
 
Регистрация: 07.01.2015
Сообщений: 5
По умолчанию Чтение/запись из файла

Как сделать, чтобы число из Label сравнивалось с тем, что уже записано в текстовый файл и если оно больше(число из Label), то файл перезаписывался?? Прошу помочь
Kinder424 вне форума Ответить с цитированием
Старый 07.01.2015, 16:14   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Код:
var F:File;
   num1,num2:Integer;
   str:string;
   s:Char;

procedure .....//по нажатию кнопки или после чего-то ещё
begin
num1:=StrToInt(Label.Caption);
str:='';
AssignFile(F,'Name.txt');
Reset(F,1);
for i:=0 to FileSize(F)-1 do
begin
   Seek(F,i);
   BlockRead(F,s,1);
   str:=str+Chr(ord(s));//char -> string
end;
num2:=StrToInt(str);
if(num2<num1)then
for i:=1 to Length(str) do
begin
   Seek(F,i-1);
   BlockWrite(F,str[i],1);
end;
CloseFile (F);
end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 07.01.2015 в 16:18.
NetSpace вне форума Ответить с цитированием
Старый 07.01.2015, 17:23   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А я бы делал так:
Код:
with TStringList.Create do begin
 LoadFromFile('Блабла');
 if StrToIntDef(Strings[0],0)<StrToIntDef(Label.Caption,0) then
  Strings[0]:=Label.Caption;
 SaveToFile('Блабла');
free;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2015, 17:26   #4
Kinder424
 
Регистрация: 07.01.2015
Сообщений: 5
По умолчанию

Спасибо, но у меня почему то не перезаписывает файл, уже несколько раз перепробовал..
Могли бы вы онлайн посмотреть в чем проблема?

[nick]Stilet[/nick],
А если у меня вместо Label будет переменная типа integer, как можно оформить?
Сейчас выдает такую ошибку
Error: Incompatible type for arg no. 1: Got "LongInt", expected "AnsiString"

Цитата:
Сообщение от Stilet Посмотреть сообщение
А я бы делал так:
Код:
with TStringList.Create do begin
 LoadFromFile('Блабла');
 if StrToIntDef(Strings[0],0)<StrToIntDef(Label.Caption,0) then
  Strings[0]:=Label.Caption;
 SaveToFile('Блабла');
free;
end;
А если у меня вместо Label будет переменная типа integer, как можно оформить?
Сейчас выдает такую ошибку
Error: Incompatible type for arg no. 1: Got "LongInt", expected "AnsiString"

Последний раз редактировалось Stilet; 07.01.2015 в 18:34.
Kinder424 вне форума Ответить с цитированием
Старый 07.01.2015, 18:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Правильный вопрос
Вот для таких случаев придумали INI файлы.
Смотри:
1) http://www.programmersforum.ru/showthread.php?t=14551
2) http://www.programmersforum.ru/showthread.php?t=64620
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2015, 21:41   #6
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Цитата:
А если у меня вместо Label будет переменная типа integer, как можно оформить?
Загрузил в переменную типа TStringList-а
И там переменная и тут переменная, сравнил две переменные, обработал условия, записал-перезаписал, сохранил.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 07.01.2015, 21:57   #7
Kinder424
 
Регистрация: 07.01.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Загрузил в переменную типа TStringList-а
И там переменная и тут переменная, сравнил две переменные, обработал условия, записал-перезаписал, сохранил.
Можно пример на коде?
Kinder424 вне форума Ответить с цитированием
Старый 07.01.2015, 22:38   #8
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Текстовый файл test.txt создай с числом в папке с проектом.
Код:
var
  a, b: Integer;
  List: TStringList;
begin
  a := StrToInt(Label1.Caption);
  List := TStringList.Create;
  List.LoadFromFile('test.txt');
  b := StrToInt(List.Strings[0]);
  if a > b then
  begin
    ShowMessage(IntToStr(a) + ' > ' + IntToStr(b) + ', файл будет перезаписан');
    List.Text := IntToStr(a);
    List.SaveToFile('test.txt');
  end;
  List.Free;
end;
NIKOLAYY2 вне форума Ответить с цитированием
Старый 08.01.2015, 14:42   #9
Kinder424
 
Регистрация: 07.01.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Текстовый файл test.txt создай с числом в папке с проектом.
Код:
var
  a, b: Integer;
  List: TStringList;
begin
  a := StrToInt(Label1.Caption);
  List := TStringList.Create;
  List.LoadFromFile('test.txt');
  b := StrToInt(List.Strings[0]);
  if a > b then
  begin
    ShowMessage(IntToStr(a) + ' > ' + IntToStr(b) + ', файл будет перезаписан');
    List.Text := IntToStr(a);
    List.SaveToFile('test.txt');
  end;
  List.Free;
end;

Спасибо большое! Выручили!
Kinder424 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение\Запись из файла vlados007 Общие вопросы C/C++ 1 10.03.2012 04:15
чтение\запись из файла Skrip Общие вопросы C/C++ 3 23.09.2009 19:05
Запись и чтение из файла МаксMorfey Общие вопросы по Java, Java SE, Kotlin 5 10.06.2009 11:39
Запись/чтение из файла (С++) alexov Общие вопросы C/C++ 15 18.01.2009 17:35