Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вопрос по VBA для Excel

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Tanik_muh



Зарегистрирован: 21.05.2007
Сообщения: 8

СообщениеДобавлено: Пн Май 21 2007 16:22    Заголовок сообщения: Вопрос по VBA для Excel Ответить с цитатой

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

А В...
1 ИмяФайла:Пример
2 НомерДок:123**4567890001
3 СвидГР:123456789,001
4 СвидГН:123456789,001
и т.д.

Дальше этот лист сохраняется в файл Пример.txt (MS-DOS)
НО
некоторые строчки Excel, перед тем как отправтить в файл, заковычивает
и получается такая вот ерунда:

ИмяФайла:Пример
НомерДок:123**4567890001
"СвидГР:123456789,001"
"СвидГН:123456789,001"
и т.д.

А мне этот файл нужно дальше отправлять и там эти ковычки никого не радуют

Заранее спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
критикан



Зарегистрирован: 18.02.2005
Сообщения: 247

СообщениеДобавлено: Вт Май 22 2007 16:07    Заголовок сообщения: инструкция к гиперхронокапсулированному филомедиатангенциалу Ответить с цитатой

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]


mode Required.Keyword specifying the file mode: Append, Binary, Input, Output, or Random
---------------------------
а вы прочитали инструкцию по работе с гиперхронокапсулированным филомедиатангенциалом?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tanik_muh



Зарегистрирован: 21.05.2007
Сообщения: 8

СообщениеДобавлено: Вт Май 22 2007 16:17    Заголовок сообщения: Ответить с цитатой

А можно поподробнее.
Я с VBA работаю совсем недавно
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
критикан



Зарегистрирован: 18.02.2005
Сообщения: 247

СообщениеДобавлено: Ср Май 23 2007 08:11    Заголовок сообщения: начинающие программисты -- это те же пользователи, но хуже Ответить с цитатой

в вба для вывода информации в файл используются операторы (statement) put, print/print#, write/write#.

операторы print/print# используются для вывода в текстовый файл, пригодный для черновой печати (то есть все значения преобразуются в символьное представление -- выводятся без дополнительных изменений, -- значения выравнены по определённым позициям);

операторы write/write# используются для вывода в текстовый файл формата csv (то есть все значения преобразуются в символьное представление -- выводятся в кавычках -- или числовое -- выводятся без дополнительных изменений, -- значения разделены заданным разделителем -- обычно запятая/табуляция/точка с запятой);

оператор put используется для вывода в файл, предназначенный для последующего чтения программами (если это двоичный -- binary -- файл, то значения выводятся во внутреннем представлении, если это текстовый -- без указания binary, но с указанием random -- файл, то значения выводятся во внутреннем представлении с дополнительной информацией о типе)

но вообще говоря, есть специальный объект работы с внешним файлом
-----------------
начинающие программисты -- это те же пользователи, только гораздо хуже
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tanik_muh



Зарегистрирован: 21.05.2007
Сообщения: 8

СообщениеДобавлено: Чт Май 24 2007 08:06    Заголовок сообщения: Ответить с цитатой

Confused
Что-то у меня совсем ум за разум походу....
Все эти Put, Write и Print работают просто супер, все записывают, без всяких кавычек. Но формат текста не MS-DOS.
Там когда открываешь файл по F3, зайти в пункт меню Вид, то галочка стоит у пункта
ANSI (кодировка Windows) A
а нужно, чтобы стояла галочка у
ANSI (кодировка DOS) S
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tanik_muh



Зарегистрирован: 21.05.2007
Сообщения: 8

СообщениеДобавлено: Чт Май 24 2007 08:10    Заголовок сообщения: Ответить с цитатой

я извиняюсь за неточность
я хотела сказать что файл будет читаться, если галочку поставить на ANSI (кодировка DOS)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tanik_muh



Зарегистрирован: 21.05.2007
Сообщения: 8

СообщениеДобавлено: Чт Май 24 2007 08:41    Заголовок сообщения: Ответить с цитатой

Короче сама нашла!!! Laughing
Если кому интересно, то привожу ниже
Значит вначале нужно объявить
Public Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszScr As String, ByVal lpszDst As String) As Long

Потом написать фукцию перевода в кодировку DOS
Function ANSITOOEM(ByVal sAnsi As String) As String
Dim sOem As String

sOem = String(Len(sAnsi), Chr(0))
CharToOem sAnsi, sOem
ANSITOOEM = sOem
End Function

А потом вызвать ее где-нить в процедуре
Sub Zap
ChDir "C:\"
Open "testfile.txt" For Output As #1
For t = 1 To 42
k = Cells(t, 1).Value
p = ANSITOOEM(k)
Print #1, p
Next t
Close #1
End Sub

И все Cool
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
критикан



Зарегистрирован: 18.02.2005
Сообщения: 247

СообщениеДобавлено: Чт Май 24 2007 19:44    Заголовок сообщения: - Ответить с цитатой

++++++++

Последний раз редактировалось: критикан (Чт Май 24 2007 20:10), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
критикан



Зарегистрирован: 18.02.2005
Сообщения: 247

СообщениеДобавлено: Чт Май 24 2007 19:54    Заголовок сообщения: to fuck=to programme & to be fucked=to programme with basic Ответить с цитатой

ведь могут, когда хотят! (c)
----------------
to fuck means to programme and to be fucked means to programme with basic. К дамам это не относится, равно как и мои предыдущие сентенции
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tanik_muh



Зарегистрирован: 21.05.2007
Сообщения: 8

СообщениеДобавлено: Пт Май 25 2007 07:29    Заголовок сообщения: Ответить с цитатой

критикан: все хотела тебе сказать: нежнее надо, еще нежнее! Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...