Помогите пожалйста

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lazdenni
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 13.05.2003 (Вт) 10:42

Помогите пожалйста

Сообщение lazdenni » 13.05.2003 (Вт) 10:59

Имеется несколько текстовых файлов( 5 штук) нужно соединить эти файлы в один, и у последних четырёх при присоединеии к 1-му удалить первую строчку :?:

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.05.2003 (Вт) 11:09

Читаешь все пять файлов в переменную.
При чтении 2-5 не пишешь первую строку в переменную.
Все сохраняешь в файл.......
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

lazdenni
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 13.05.2003 (Вт) 10:42

А как это зделать то?

Сообщение lazdenni » 13.05.2003 (Вт) 11:14

А как это зделать то?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.05.2003 (Вт) 11:20

Примерно так:
Код: Выделить всё
Private Function Merge_Files(Files() as string) as String
dim i as integer
dim output as String
dim iline as string

open files(0) for input as #1
do while not eof(1)
  line input #1, iline
  output=output & iline & vbCrLf
loop
close files(0)

for i=1 to 5
  open files(i) for input as #1
  line input #1, iline
  do while not eof(1)
    line input #1, iline
    output=output & iline & vbCrLf
  loop
  close files(0)
next i

Merge_Files=output
End Function


Я мог перепутать параметры у Line Input
Последний раз редактировалось FaKk2 13.05.2003 (Вт) 11:25, всего редактировалось 1 раз.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.05.2003 (Вт) 11:24

Вызываешь так:

Код: Выделить всё
files(0)="c:\text1.txt"
....
files(4)="c:\text2.txt"
out=Merge_Files(Files)
open files(0) for output as #1 'если надо первый файл переписать.
print #1, out
close #1
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

lazdenni
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 13.05.2003 (Вт) 10:42

невыходит

Сообщение lazdenni » 13.05.2003 (Вт) 11:55

на
вот это
files(0) = "C:\utu100\bbbb\1.txt"
files(1) = "C:\utu100\bbbb\2.txt"
files(2) = "C:\utu100\bbbb\3.txt"
files(3) = "C:\utu100\bbbb\4.txt"
files(4) = "C:\utu100\bbbb\5.txt"
out = Merge_Files(files)
Open files(0) For Output As #1 'åñëè íàäî ïåðâûé ôàéë ïåðåïèñàòü.
Print #1, out
Close #1

vb пишет Sub or Function not Define

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 13.05.2003 (Вт) 15:27

files - это массив строк
Поэтому надо его определить, прежде чем пользоваться :wink:

dim files(4) as String

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.05.2003 (Вт) 18:09

Rainbow писал(а):files - это массив строк
Поэтому надо его определить, прежде чем пользоваться :wink:

dim files(4) as String

Это во первых.
А во вторых вызов функции и вообще весь код надо куда нить впихнуть. Например в код нажатия кнопки.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

lazdenni
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 13.05.2003 (Вт) 10:42

Сообщение lazdenni » 14.05.2003 (Ср) 5:32

Open files(0) For Input As #1
Do While Not EOF(1)
Line Input #1, iline
output = output & iline & vbCrLf
Loop
Close files(0) <----- ВОТ НА ЭТО ДЕЛО РУГАЕТСЯ УЖе ВСЁ ПЕРЕПРОБЫВАЛ .А пишет Type mismach

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 14.05.2003 (Ср) 7:07

Ты пытаешься закрыть файл (командой Close) с указанием имя файла, а надо указывать дескриптор, конкретно в приведенном тобой примере надо писать Close #1. А ругается он "Type mismach", из-за не совпадения типов, т.е. ты вместо Integer подставляешь String.

Удачи!

lazdenni
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 13.05.2003 (Вт) 10:42

ff

Сообщение lazdenni » 14.05.2003 (Ср) 7:18

Спасибо всё получилось
А можно ли зделать так что бы файл читался не по строчкам а целиком и у последующих удалялась только первая строчка?

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 14.05.2003 (Ср) 11:12

Сорри ошибся.... :oops:
Файл целиком....
ищи на старом форуме:
[url]old.vbstreets.ru[/url]
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Mail.ru [бот], Yandex-бот и гости: 95

    TopList