Страница: 1 |
Страница: 1 |
Вопрос: Удаляем запись!
Добавлено: 20.04.06 18:29
Автор вопроса: DJ MATHEMATIC
В файле произвольного доступа нужно удалить
запись определенный record из файла (для этого копируем необходимые записи в новый файл,старый удаляют,новому файлу дают имя старого)...Вот эта запись record:
Public Type Air
NumberTrip As Byte
PointPlace As String
TimeArrive As Integer
TimeLeave As Integer
FreePlace As Integer
End Type
Public record As Air
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #1
Добавлено: 21.04.06 01:18
Что такое файл произвольного доступа?
Строку из файла надо удалить, что ли?
-------------------
Вот! Вспомнил молодость! Накропал ни разу не компиля до самого конца:
Private Type FileLine
strLine As String
strPrint As Boolean
End Type
Private Sub Form_Load()
Dim strFile As String
Dim max As Integer
Dim cur As Integer
Dim arr() As FileLine
Dim intFileNum As Integer
Dim strLine As String
intFileNum = FreeFile
max = 100
ReDim arr(max)
strFile = "d:\1.txt"
If Len(Dir(strFile)) > 0 Then
Open "d:\1.txt" For Input As #intFileNum
Do While Not EOF(intFileNum)
Line Input #intFileNum, strLine
If cur > max Then
max = max + 100
ReDim Preserve arr(max)
End If
arr(cur).strLine = strLine
arr(cur).strPrint = True
cur = cur + 1
Loop
Close #intFileNum
Else
MsgBox "Íåò ôàéëà!", vbCritical
Exit Sub
End If
max = cur - 1
If max >= 0 Then
ReDim Preserve arr(max)
Else
MsgBox "Íåò çàïèñåé!", vbCritical
Exit Sub
End If
' ---------------------------------------
' óäàëÿåì íåêîòîðûå çàïèñè
Dim i As Integer
For i = 0 To max Step 2
arr(i).strPrint = False
Next i
' ---------------------------------------
' ïå÷àòàåì íîâûé ôàéë
Dim strRezFile As String
strRezFile = "d:\result.txt"
Open strRezFile For Output As #intFileNum
For i = 0 To max
If arr(i).strPrint Then
Print #intFileNum, arr(i).strLine
End If
Next i
Close #intFileNum
End Sub
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 22.04.06 01:29
Тю, ну открываешь open as binary, через lof / len(Air) получаешь кол-во элементов, создаеш массив, загружаешь Get #, , Air в него данные, удаляешь из массива ненужную строку, и загружаешь обратно в файл... В чём траблы то конкретно..
Номер ответа: 3
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #3
Добавлено: 22.04.06 06:42
файл произвольного доступа это типа Random.
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 22.04.06 15:11
Для этой цели вполне катит бинари