Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.10.2011, 09:31
Delces Delces вне форума
Прохожий
 
Регистрация: 14.10.2011
Сообщения: 6
Репутация: 10
По умолчанию Подгрузка цифры в .txt

Всем привет. Вообще нужно чтобы при нажатии на кнопку (button1) добавлялась цифра в txt файл...
1 2 3 ...

Последний раз редактировалось Delces, 14.10.2011 в 14:40.
Ответить с цитированием
  #2  
Старый 14.10.2011, 10:07
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Код:
AssignFile(f,'c:\1.txt');
Reset(f);//открываем фал для считывания последнего значения
while not Eof(f) do //переходим в конец файла
Readln(f,i);
inc(i);//увеличиваем считанное знаение
Append(f);//открываем файл для дозаписи
WriteLn(f,i);
CloseFile(f);
Ответить с цитированием
  #3  
Старый 14.10.2011, 10:13
Delces Delces вне форума
Прохожий
 
Регистрация: 14.10.2011
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Snake22
Код:
AssignFile(f,'c:\1.txt');
Reset(f);//открываем фал для считывания последнего значения
while not Eof(f) do //переходим в конец файла
Readln(f,i);
inc(i);//увеличиваем считанное знаение
Append(f);//открываем файл для дозаписи
WriteLn(f,i);
CloseFile(f);
А можно пожалуйста поподробнее? Куда это вставлять или если не затруднот можете исходник сделать?
Ответить с цитированием
  #4  
Старый 14.10.2011, 10:25
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Цитата:
Сообщение от Delces
А можно пожалуйста поподробнее? Куда это вставлять или если не затруднот можете исходник сделать?
это уже наглость =) весь код написал,в кнопку вставить его осталось
Вложения
Тип файла: zip 1111.zip (197.3 Кбайт, 3 просмотров)
Ответить с цитированием
  #5  
Старый 14.10.2011, 10:32
Delces Delces вне форума
Прохожий
 
Регистрация: 14.10.2011
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Snake22
это уже наглость =) весь код написал,в кнопку вставить его осталось
Спасибо огромное! Так я вставлял в кнопку... но переменные не указал Еще раз спасибо.
Ответить с цитированием
  #6  
Старый 14.10.2011, 11:03
Delces Delces вне форума
Прохожий
 
Регистрация: 14.10.2011
Сообщения: 6
Репутация: 10
По умолчанию

Появился еще вопрос. А возможно таким же образом подгрузить текст с цифрой? Чтобы перед цифрой выводился текст "номер"?

номер 1
номер 2
номер 3
номер 4
...
Ответить с цитированием
  #7  
Старый 14.10.2011, 11:20
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Delces
Появился еще вопрос. А возможно таким же образом подгрузить текст с цифрой? Чтобы перед цифрой выводился текст "номер"?

номер 1
номер 2
номер 3
номер 4
...

Код:
WriteLn(f,'номер '+i);
Сходи сюда
http://pblog.ru/?p=14
__________________
Google в помощь
Ответить с цитированием
  #8  
Старый 14.10.2011, 11:23
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

только тогда еще при считывании посленей строки надо учитывать что будет сичтываться текст,и надо будет отделить надпись "номер" от цифры.
в данном случае используется пробел,можно функцией pos
Код:
var s:string;
...
ReadLn(f,s);
i:=StrToInt (Copy(s,Pos(' ',s)+1,length(s)) );//копируем S с конца пробела и до конца строки

Последний раз редактировалось Snake22, 14.10.2011 в 11:27.
Ответить с цитированием
  #9  
Старый 14.10.2011, 11:30
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Snake22
только тогда еще при считывании посленей строки надо учитывать что будет сичтываться текст,и надо будет отделить надпись "номер" от цифры.
в данном случае используется пробел,можно функцией pos
Код:
var s:string;
...
ReadLn(f,s);
i:=StrToInt (Copy(s,Pos(' ',s)+1,length(s)) );//копируем S с конца пробела и до конца строки

Ну давай тогда окончательно до ума доводить:
Код:
i:=StrToInt (Copy(s,Pos(' ',s)+1,length(s)-pos(' ',s)) );
__________________
Google в помощь
Ответить с цитированием
  #10  
Старый 14.10.2011, 12:07
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

последнее совсем не обязательно. delphi сама додумает и просто до конца строки скопирует,никаких ошибок превышения длинны строки не будет. тыщу раз делал именно так.
имхо лишний текст только...

Последний раз редактировалось Snake22, 14.10.2011 в 12:18.
Ответить с цитированием
  #11  
Старый 14.10.2011, 12:30
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Поверь на слово случаи когда люди на этом попадали были (связано с переполнением памяти, правда это было в давние времена). Да в целом Делфи со стринговыми переменными достаточно лояльно работает, и в данном случаи никакой ошибки не будет, но к тому же нет и конкретики. Одно дело когда ошибки, связанные с неконкретным использованием функций, всплывали в каком-нибудь школьном или курсовом проекте, и совсем другое, когда подобного рода неточности случаются на производстве. Так что конкретика важна.
И попробуй нарисовать на бумаге набор символов например, klgjklfgjirjkvdkjdflkgjpioukjdlkgjlkfjgldkj*123, и вернуть все после знака * своим методом и правильным. И учти, что перед знаком * может стоять куда больше символов.
__________________
Google в помощь
Ответить с цитированием
  #12  
Старый 14.10.2011, 12:33
Delces Delces вне форума
Прохожий
 
Регистрация: 14.10.2011
Сообщения: 6
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var f:TextFile;
i:Integer;
s:string;
begin
AssignFile(f,'1.txt');
If not FileExists('1.txt') then //если файл не существует создаём его
   begin
   Rewrite(f);//создаём
   Writeln(f,0);//записываем число ноль
   Reset(f);
   end
else
Reset(f);//если файл создан то просто открываем для считывания последнего значения
while not Eof(f) do //переходим в конец файла
Readln(f,s);
i:=StrToInt (Copy(s,Pos(' ',s)+1,length(s)-pos(' ',s)) );
inc(i);//увеличиваем считанное значение
Append(f);//открывает файл для записи
WriteLn(f,'номер '+i);
CloseFile(f);
end;

end.
выводит красным текст: WriteLn(f,'номер '+i);
и пишет ошибку:
[Error] Unit1.pas(45): Incompatible types: 'String' and 'Integer'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
что не так?
Ответить с цитированием
  #13  
Старый 14.10.2011, 12:37
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Точно i же у нас integer. Тогда
Код:
WriteLn(f,'номер '+IntToStr(i));
__________________
Google в помощь
Ответить с цитированием
  #14  
Старый 14.10.2011, 12:39
Delces Delces вне форума
Прохожий
 
Регистрация: 14.10.2011
Сообщения: 6
Репутация: 10
По умолчанию

Всем спасибо за помощь!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025