![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Код:
procedure TForm1.Button5Click(Sender: TObject); var i:integer; begin Seek(NoteFile, pos); Truncate(NoteFile); Button2.Enabled:=false; if pos<>0 then dec(pos) else begin Button5.Enabled:=false; ClearDate; end; if pos>=0 then begin for i:=pos+1 to FileSize(NoteFile)-1 Do begin Seek(NoteFile,i); Read(NoteFile, NoteData); Seek(NoteFile, i-1); Write(NoteFile, NoteData); end; Seek(NoteFile, FileSize(NoteFile) -1); Truncate(NoteFile); end; Seek(NoteFile, pos); Read(NoteFile, NoteData); ShowRecord; if pos=-1 then begin Button1.Enabled := false; {Кнопка возвращения назад} end; end; P.S А какую позицию принимает pos если файл пуст? Считывание файла начинается с 0 позиции? |
#2
|
|||
|
|||
![]() http://www.vihv.org/index.php?e=CodeSmells
лечится или рефакторингом или переписыванием с нуля |
#3
|
|||
|
|||
![]() А поправить код этот никто тут не может?
|
#4
|
||||
|
||||
![]() Этот код тяжело "подправить". Он неполный, пиши с нуля.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Могу попробовать...
Ну мне нужны ответы на некоторые вопросы: Какую pos имеет пустой? Какой Pos у первой записи в файле? Для того чтобы написать правильно код мне нужно разобрать: а)Строка является единственной строкой в файле б)Строка является последней в файле в)Стока является началом или серединой файла(Вроде отличий между этими 2 случаем нет на мой згляд...) Правильно? |
#6
|
||||
|
||||
![]() Неужели тяжело справку почитать?
Цитата:
Код:
var S : string; begin S := ' 123.5'; { Convert spaces to zeros } while Pos(' ', S) > 0 do S[Pos(' ', S)] := '0'; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() Цитата:
А по делу Имеем типизованый файл, тогда Если FileSize(NoteFile) равно нулю, то файл пустой. У первой записи позиция равна нулю. У последней записи позиция равна FileSize(NoteFile)-1. |
#8
|
|||
|
|||
![]() http://dump.ru/file/5399001
Вот вся программа,с не рабочим удалением |
#9
|
|||
|
|||
![]() |
#10
|
|||
|
|||
![]() Помогите,я перепробовал все ,что бы заставить кнопку работать как надо,но ничего не получается.
Мне кажется ,что этот глюк происходит из-за использования Truncate,но кроме него мне кажется ничего использовать нельзя. Delete вроде только в строковых типах юзается... |