Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2008, 20:05   #1
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию Работа с файлами, нужна помощь

Доброго времени суток, уважаемые )
возникла ситуация, так и не смог решить
кароче есть массив рекордов (часть строки, часть интеджеры, а 2 переменных - юникодовые, WideString)

мне нужно както этот весь массив перенести в файл, причем так, чтоб значения переменных были разделены знаками табуляции

пробовал и через TstringList.savetofile, и через WriteLn, не помогает, записывает в любом случае строку....
вобщем очень нуждаюсь в помощи
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 19.07.2008, 20:11   #2
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Попробуй
write(file,#9+{значение переменной});
P.S. writeln--автоматически переводит каретку на новую строку, в отличии от write.
#9--табуляция.
Вложения
Тип файла: txt Project1.txt (545 байт, 117 просмотров)

Последний раз редактировалось NikLik; 19.07.2008 в 20:30.
NikLik вне форума Ответить с цитированием
Старый 19.07.2008, 20:17   #3
The_Darkness
Пользователь
 
Регистрация: 06.01.2008
Сообщений: 83
По умолчанию

Хм, не совсем понял как массив выглядит, ну поидее если рекорды, надо создать файл этих самых рекордов, типа:
Код:
Type TRec=record
...
end;
Rec:File of TRec;
а потом в него записать саму рекорд. Попробуй, вроде бы должно работать.
P.S. Но способ NikLik стопудова будет работать)
Прогрессирующий чайник..

Последний раз редактировалось The_Darkness; 19.07.2008 в 20:19.
The_Darkness вне форума Ответить с цитированием
Старый 19.07.2008, 20:22   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

оба ответа не помогут даже в теории.... может быть я не так задал вопрос...

вобщем так... массив имеет вид:
Код:
  massiv: array of record
    ID, UNK_0, group, sys_msg_ref,
    UNK_1, UNK_2, UNK_3, UNK_4, UNK_5,
    item_sound, sub_msg, typeA, rgba_0, rgba_1, rgba_2, rgba_3: string;
    messageA,messageB,messageC:widestring;
  end;
messageA,messageB,messageC - содержат в себе строки в формате юникода (WideString), часть сторок - русская, потому и нужен юникод...

знаки табуляции я знаю как ставить, проблемма именно в кодировках..
каретку мне итак нужно переводить, массив в глубиу имеет 2к+ записей, каждая запись в новой сстроке, а переменные записи - через таб перечислены

вот пример того, что нужно создать (только часть строк нужно будет перевести на русский, и записать его именно в юникоде):
Код:
75	1	a,ID does not exist.\0	0	79	9B	B0	FF	a,ItemSound3.sys_character_failed\0	a,	0	0	0	0	0	a,	a,none\0
76	1	a,Incorrect password.\0	0	79	9B	B0	FF	a,	a,	0	0	0	0	0	a,	a,none\0
77	1	a,You cannot create another character. Please delete the existing character and try again.\0	0	79	9B	B0	FF	a,ItemSound3.sys_character_failed\0	a,	0	0	0	0	0	a,	a,none\0
78	1	a,Do you wish to delete $s1?\0	4	79	9B	B0	FF	a,	a,	0	0	0	0	0	a,	a,popup\0
79	1	a,This name already exists.\0	0	79	9B	B0	FF	a,ItemSound3.sys_character_failed\0	a,	0	0	0	0	0	a,	a,none\0
80	1	a,Your title cannot exceed 16 characters in length.В* Please try again.\0	0	79	9B	B0	FF	a,ItemSound3.sys_character_failed\0	a,	0	0	0	0	0	a,	a,none\0
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}

Последний раз редактировалось Johnson; 19.07.2008 в 20:26.
Johnson вне форума Ответить с цитированием
Старый 19.07.2008, 22:44   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
часть сторок - русская, потому и нужен юникод...
хм... я русские буквы без труда запихну в string

для записи структуры данных, содержащую строки, в файл нужно объзательно указывать длинну строки: string[60] например.
zetrix вне форума Ответить с цитированием
Старый 19.07.2008, 23:15   #6
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Цитата:
хм... я русские буквы без труда запихну в string
там файл потом будет в другом приложении использоваться, а то приложения анси не понимает, только юникод

Цитата:
для записи структуры данных, содержащую строки, в файл нужно объзательно указывать длинну строки: string[60] например.
размер сторк и массива я указываю дальше по коду
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с MS Word с помощью VBA. Нужна помощь. ereality Microsoft Office Word 5 28.05.2008 18:50
Работа с файлами. Нужна помощь. Corwin88 Помощь студентам 9 14.05.2008 22:37
работа с файлами Antonio86 Общие вопросы Delphi 0 20.01.2008 16:27
работа с .ini файлами PAVEL315 Общие вопросы Delphi 3 22.11.2006 22:28