@MinasM

Разбить данные в несколько файлов?

Дается число. Необходимо в файл записывать данные по порядку целые от 1 до заданного числа, если данных очень много то можно записывать в разные файлы
например. Задано записать все числа с 1 до 999 в четыре разных файла. Поскольку файла 4 то в каждый файл буду записывать 999/4 = 249 значений.

Вот код
Private Sub Command1_Click()
Dim MyFile As Long
MyFile = FreeFile
 
file_kolvo = Int(Val(Text2.Text))
txt = Int(Val(Text1.Text))
 
If Check1.Value = 0 Then
file_kolvo = 0
For i = 1 To txt
Open ("C:\TEST.txt") For Append As #MyFile
Print #MyFile, i
Close #MyFile
If i = txt Then
MsgBox ("Все цифры в файле C:\TEST.txt")
End If
 
Next
 
Else
n = 1
z = 0
chislo_v_faile = Int(txt / file_kolvo)
 
 
For iter_file_kolvo = 1 To file_kolvo
    
    
    
    z = z + (chislo_v_faile)
  
    
    For i = n To z
     Open ("C:\TEST" & iter_file_kolvo & ".txt") For Append As #MyFile
    Print #MyFile, i
    Close #MyFile
 
    Next i
    
    n = n + (chislo_v_faile)
    
Next iter_file_kolvo
 
End If
End Sub


Проблема заключается в последнем файле. Т.к. дело обстоит с целыми то в последний файл не дозаписываются 999-249*4=3 значения.
Вопрос. Как организовать цикл более правильно, чтобы вносились все значения в последний файл
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
chislo_v_faile = Int((txt+file_kolvo) / file_kolvo)

т.к. при Int() мы отсекаем всю дробную часть, поэтому мы должны компенсировать это.
Ответ написан
Комментировать
@MinasM Автор вопроса
Проблему решил используя костыли и функцию CInt которая и производит округление.
Может у кого-нить буду идеи сделать код лучше? Посоветуйте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы