Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Запись строк в файл
DeemaДата: Воскресенье, 02 Декабря 2007, 22:06 | Сообщение # 1
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
Code
For i=1 To 3
If (i=1) Then
String$=obva$
Else
If (i=2) Then
String$=stavka$
Else
If (i=3) Then
String$=srok$
Else
End
End
End
Rv=StrToFile(File$,String$[i],TRUE,TRUE)
Next i

Нужно, чтобы скрипт последовательно записал в файл строковые переменные: obva$, stavka$, srok$,
а он вместо этого записывает на каждой строке файла вот что:
String$[i]
String$[i]
String$[i]

 
YURIYДата: Воскресенье, 02 Декабря 2007, 22:21 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Сценарий составлен неправильно.

Добавлено (02 Декабрь 2007, 22:21)
---------------------------------------------
Причём тут цикл и массив String$, который вы изначально используете, как обычную переменную, а не массив...

Code
obva$='obva'
stavka$='stavka'
srok$='srok'
File$='C:\File.txt'
Rv=StrToFile(File$,obva$,TRUE,TRUE)
Rv=StrToFile(File$,stavka$,TRUE,TRUE )
Rv=StrToFile(File$,srok$,TRUE,TRUE)

P. S. Заключайте код в теги code!



Вечная память Андрею Сергееву!
 
DeemaДата: Воскресенье, 02 Декабря 2007, 22:35 | Сообщение # 3
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
Спасибо! Я уже сам вроде бы разобрался.
Нужно было вместо "String$" присваивать значения переменной String$[i] - я просто еще новичок и с массивами не очень дружу...
Поясню мою задачу: в моей проге есть множество различных текстовых переменных (я просто для примера привел только 3 - на самом деле их более полусотни) и я хотел, чтобы пользователь на определенном этапе работы с программой мог сохранить все переменные в файл, а потом (когда вернется к работе с программой) мог опять загрузиться и начать работать с того места, где закончил.
Для этого мне нужно, чтобы все переменные построчно записывались в текстовый файл (каждай переменная на отдельной строке). Поэтому мне и понадобился цикл и массив..
 
YURIYДата: Воскресенье, 02 Декабря 2007, 22:41 | Сообщение # 4
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Тогда понятно. Конечно здесь нужен массив. Вы просто неправильно присваивали ему значения. Ведь массив имеет индексы, заключаемые в квадратные скобки...

Code
String$[1]=obva$
String$[2]=stavka$
String$[3]=srok$
For i=1 To 3
   Rv=StrToFile(File$,String$[i],TRUE,TRUE)
Next i

Но этот код является громоздким: нужно присваивать значения не переменным obva, stavka, srok, затем массиву, а сразу элеметам массива string$[1]='текст переменной obva', string$[2]='текст переменной stavka', ...



Вечная память Андрею Сергееву!
 
DeemaДата: Воскресенье, 02 Декабря 2007, 22:52 | Сообщение # 5
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
Спасибо!
У меня вроде бы получилось то, что я хотел..
ВОт так сделал:
Code

String$[1]=obva$  
String$[2]=stavka$  
String$[3]=srok$  
For i=1 To 3  
    Rv=StrToFile(File$,String$[i],TRUE,TRUE)  
Next i

Добавлено (02 Декабрь 2007, 22:52)
---------------------------------------------
А можно ведь еще заменить цифры в массиве на i

Code

String$[i]=obva$  
String$[i]=stavka$  
String$[i]=srok$  
For i=1 To 3  
    Rv=StrToFile(File$,String$[i],TRUE,TRUE)  
Next i

Тоже вроде нормально работает...

 
YURIYДата: Воскресенье, 02 Декабря 2007, 22:55 | Сообщение # 6
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Deema)
У меня вроде бы получилось то, что я хотел.
ВОт так сделал:

Я выше также написал.

Quote (Deema)
А можно ведь еще заменить цифры в массиве на i

Нельзя.



Вечная память Андрею Сергееву!
 
DeemaДата: Воскресенье, 02 Декабря 2007, 22:55 | Сообщение # 7
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
То есть нет - не правильно я написал - вот что я хотел сказать на самом деле:
Code


For i=1 To 3
   If (i=1) Then
     String$[i]=obva$
   Else
   If (i=2) Then
     String$[i]=stavka$
   Else
   If (i=3) Then
     String$[i]=srok$
   Else
End
End
End
Next i
 
YURIYДата: Воскресенье, 02 Декабря 2007, 23:04 | Сообщение # 8
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ну понятно... В общем, нужно воспользоваться советами, что я привёл выше - иначе у вас получается громоздкий код... Но так как вы новичок - ничего ПОКА ЧТО против не имею biggrin


Вечная память Андрею Сергееву!
 
DeemaДата: Воскресенье, 02 Декабря 2007, 23:11 | Сообщение # 9
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
Да, действительно Вы намного проще предложили - без If then..:)
Спасибо, что прощаете промахи новичкам :))
 
  • Страница 1 из 1
  • 1
Поиск: