Страница: 1 |
люди добрые, подскажите!!!! как собрать 2 файла(текстовых) в один, а при нужде опяти разложить на 2??? заранее благодарен!
Тю! в чём проблема? Open "C:\111.txt" for input as #1 Open "C:\222.txt" for input as #2 Open "C:\333.txt" for output as #3 do while not eof (1) Line input #1, q$ print #3,q$ loop close #1 do while not eof (2) Line input #2, q$ print #3,q$ loop close примерно так, писал по памяти, не в VB, а сразу тут. Если что извиняй, неполучится, стучись в аську там и разотрём Не дюжа клевый способ. Это ж сколько считываний/записей то будет! Уж лучше сразу считывать файл (если он не особо большой), и второй тоже, а потом за один проход писать. Если большой - в два, три, четыре... захода, но уж никак не построчно. Примерно так: Private Sub Command1_Click() Dim hFile As Byte Dim sFile1 As String Dim sFile2 As String hFile = FreeFile Open "c:\file1.txt" For Input As hFile sFile1 = Input(LOF(hFile), hFile) Close hFile hFile = FreeFile Open "c:\file2.txt" For Input As hFile sFile2 = Input(LOF(hFile), hFile) Close hFile hFile = FreeFile Open "c:\file3.txt" For Output As hFile Print #hFile, sFile1 & sFile2 Close hFile End Sub Собрать: copy 1.txt+2.txt 3.txt А как расцеплять? Это в принципе наверно невозможно обычными ср-вами. Разделатель типа ### ставить опасно, тк файлы могут и его содержать...Хотя авторы WinRAR как-то справились... Для "расцепления": Чем длиннее сочетание символов нем менее вероятно, что в файле появится именно такое сочетание, а вообще лучше в начале выделить, скажем, байт 128 в качестве заголовка и поместить данные туда о началах и концах файлов... Хм... Не слишком удачно, файл то пострадает. То есть, объединяешь два текстовых файла - в итоге должен получиться текстовый файл, а там - какая-то лабуда в начале. Толковее будет добавить в конец, отделив, скажем, нулевым символом. Тот же TextBox не выводит целиком Null-terminated string, то есть при загрузке такого файла в TextBox он будет выглядеть нормально, без служебной дряни. ИМХО, 128 байт будет многовато там, где хватит и 4-х. Видать, с дельфей не особо работал, я там натыкался часто. Ну, почитай MSDN или Help-файлы. . Null-terminated Strings Always cast zero to TCHAR when using null-terminated strings. The code 0x0000 is the Unicode string terminator for null-terminated strings. A single null byte is not sufficient for this code, because many Unicode characters contain null bytes as either the high or the low byte. An example is the letter A, for which the character code is 0x0041. . К примеру: Private Sub Form_Load() Dim tmpString As String tmpString = "Null-terminated " & Chr$(0) & "more string's characters" Text1.Text = tmpString & " bla-bla-bla" End Sub Так, к сведению - они используются в протоколах чатов, в частности, qChat и Vypress Chat, разделяя в UDP пакетах поля данных. Угу... вот только указанный способ работает только для текстовых файлов... ни больше ни меньше... Ну а если этот код использовать, то заместо chr$(0) лучше бы вставить vbNullChar... Зря чтоль константа предусмотрена, не дадим пропасть добру ) Ну дык в вопросе так и сказано - "как собрать 2 файла(текстовых) в один". Естественно, если файл бинарный - нет смысла считывать его построчно Тут уж рулит массив. Ну а константы - дело привычки. Я еще со спектрума привык работать непосредственно с кодами. Страница: 1 |
Вопрос: как собрать 2 файла в один?
Добавлено: 07.04.04 18:20
Автор вопроса: Barsik | Web-сайт:
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 07.04.04 18:37
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 08.04.04 09:12
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 09.04.04 16:35
Ну вообще ты прав, я как-то сразу неподумал что файл может быть большой
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 10.04.04 18:36
Номер ответа: 5
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #5
Добавлено: 11.04.04 06:31
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 11.04.04 09:55
Номер ответа: 7
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #7
Добавлено: 12.04.04 10:46
2 sne: Толково придумано !
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 12.04.04 11:22
Номер ответа: 9
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #9
Добавлено: 12.04.04 16:29
Слухай, а можно по подробней об ентой вашей Null-terminated string, я ранее не знал ничего подобного! оч интерестно!
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 12.04.04 16:52
Номер ответа: 11
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #11
Добавлено: 12.04.04 16:59
Номер ответа: 12
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #12
Добавлено: 12.04.04 18:33
Номер ответа: 13
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #13
Добавлено: 13.04.04 10:10