![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет. Вообще нужно чтобы при нажатии на кнопку (button1) добавлялась цифра в txt файл...
1 2 3 ... Последний раз редактировалось Delces, 14.10.2011 в 14:40. |
#2
|
|||
|
|||
![]() Код:
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
|
|||
|
|||
![]() Цитата:
![]() |
#4
|
|||
|
|||
![]() Цитата:
|
#5
|
|||
|
|||
![]() Цитата:
![]() |
#6
|
|||
|
|||
![]() Появился еще вопрос. А возможно таким же образом подгрузить текст с цифрой? Чтобы перед цифрой выводился текст "номер"?
номер 1 номер 2 номер 3 номер 4 ... |
#7
|
||||
|
||||
![]() Цитата:
Код:
WriteLn(f,'номер '+i); http://pblog.ru/?p=14 Google в помощь |
#8
|
|||
|
|||
![]() только тогда еще при считывании посленей строки надо учитывать что будет сичтываться текст,и надо будет отделить надпись "номер" от цифры.
в данном случае используется пробел,можно функцией pos Код:
var s:string; ... ReadLn(f,s); i:=StrToInt (Copy(s,Pos(' ',s)+1,length(s)) );//копируем S с конца пробела и до конца строки Последний раз редактировалось Snake22, 14.10.2011 в 11:27. |
#9
|
||||
|
||||
![]() Цитата:
Ну давай тогда окончательно до ума доводить: Код:
i:=StrToInt (Copy(s,Pos(' ',s)+1,length(s)-pos(' ',s)) ); Google в помощь |
#10
|
|||
|
|||
![]() последнее совсем не обязательно. delphi сама додумает и просто до конца строки скопирует,никаких ошибок превышения длинны строки не будет. тыщу раз делал именно так.
имхо лишний текст только... Последний раз редактировалось Snake22, 14.10.2011 в 12:18. |
#11
|
||||
|
||||
![]() Поверь на слово случаи когда люди на этом попадали были (связано с переполнением памяти, правда это было в давние времена). Да в целом Делфи со стринговыми переменными достаточно лояльно работает, и в данном случаи никакой ошибки не будет, но к тому же нет и конкретики. Одно дело когда ошибки, связанные с неконкретным использованием функций, всплывали в каком-нибудь школьном или курсовом проекте, и совсем другое, когда подобного рода неточности случаются на производстве. Так что конкретика важна.
И попробуй нарисовать на бумаге набор символов например, klgjklfgjirjkvdkjdflkgjpioukjdlkgjlkfjgldkj*123, и вернуть все после знака * своим методом и правильным. И учти, что перед знаком * может стоять куда больше символов. Google в помощь |
#12
|
|||
|
|||
![]() Код:
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. и пишет ошибку: [Error] Unit1.pas(45): Incompatible types: 'String' and 'Integer' [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' что не так? |
#13
|
||||
|
||||
![]() Точно i же у нас integer. Тогда
Код:
WriteLn(f,'номер '+IntToStr(i)); Google в помощь |
#14
|
|||
|
|||
![]() Всем спасибо за помощь!
|