Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выравнять столбцы? замучила досовская кодировка! 
:(
    Опции темы
Ved
Дата 8.1.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 3.8.2006
Где: Хижина в Тетюшах

Репутация: нет
Всего: 1



Программа по кадрам! Там несколько форм если каждую ручками править устанешь!
Мои действия - делаю лист альбомным, уменьшаю поля до минимума!, все равно столбцы не ровны!

Вопрос можно как то легким взмахом волшебной палочки - имеется ввиду может как то все сразу можно? 

Образец отчета в прикрепленном файле! smile 


Это сообщение отредактировал(а) Ved - 8.1.2009, 12:24

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  FFF17 37,63 Kb


--------------------
Я не волшебник, я только учусь!  smile 
PM MAIL   Вверх
mihanik
Дата 8.1.2009, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Мил человек!!!!
Ну ты даёшь!!!!!
Текстовый файл в дос-кодировке пытаться открыть в экселе и хотеть, чтобы он выглядел хорошо?!
Он и в ворде-то выглядит неважно.
Множество лишних кодов вписано в файл!!!
Перехватил печать, что ли, с матричного принтера?
Или это просто файл предназначенный для печати на матричном принтере?

Ты или в ворде открывай и там правь, либо пиши скрипт, который бы построчно считывал твой файл и вписывал его в лист ехеля.

Других решений не вижу.

Стандартными с редствами ехел, по-моему, такой файл "нормально" не откроет...

Когда говорил про лишние символы, имел в виду следующее:

user posted image


И конфеденциальность нарушил...  smile 


Это сообщение отредактировал(а) mihanik - 8.1.2009, 11:18


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Ved
Дата 8.1.2009, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 3.8.2006
Где: Хижина в Тетюшах

Репутация: нет
Всего: 1



mihanik, 
Я в ворде и открываю! Почему Вы решили что я пытаюсь в екселе это править?

Программа досовская, написана VFP формирует фаил отчета вот такой как в прикрепленным! Значит решения этой проблемы нет? smile  smile

Цитата

Когда говорил про лишние символы, имел в виду следующее:


Нет вот про эти столбцы - мне их надо отрегулировать чтоб все вровень стояли! smile 
user posted image 


Цитата

И конфеденциальность нарушил...

Да вопще уже плевать, не хочу ручками править, закалебался! Представь скока их надо выравнивать только в одном отчете! smile  smile 

Это сообщение отредактировал(а) Ved - 8.1.2009, 12:23


--------------------
Я не волшебник, я только учусь!  smile 
PM MAIL   Вверх
mihanik
Дата 8.1.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Ved, а где было сказано обратное?
 smile 
После праздников мои экстрасенсорные способности весьма снижены...
 smile 

Используй автозамены!!!
Ты заметил, что у тебя съезжают столбцы, у которых в начале нет какой-то лабуды?
Вариант 1. Добавить лабуду туда, где её нет.
Вариант 2. Убрать лабуду отовсюду.



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Akina
Дата 8.1.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Ved @  8.1.2009,  12:49 Найти цитируемый пост)
Значит решения этой проблемы нет? 

Решение тривиально - убрать все управляющие коды. Для этого вполне достаточно поправить шаблон отчёта - 99% за то, что бланк не формируется, а берётся готовым. Но если он всё-таки прошит в код - написАть элементарный макрос, который выкусит эти коды (тем более что их не так и много - от силы десяток видов).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ved
Дата 8.1.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 3.8.2006
Где: Хижина в Тетюшах

Репутация: нет
Всего: 1



mihanik, 
Цитата

Вариант 1. Добавить лабуду туда, где её нет.
Вариант 2. Убрать лабуду отовсюду.

Однозначно такая же морока что и просто корректировать! не вариант!
Я воопще не пойму почему эта лабуда и каким образом берется! Догадки наверное чтото из ANSI не так как надо воспринимается! 
Хорошо почему обычным нортоном все нармально?

Akina, 
Цитата

Решение тривиально - убрать все управляющие коды. Для этого вполне достаточно поправить шаблон отчёта - 99% за то, что бланк не формируется, а берётся готовым. Но если он всё-таки прошит в код - написать элементарный макрос, который выкусит эти коды (тем более что их не так и много - от силы десяток видов).

Как всегда шутишь! smile
Чтобы даже понять дословно все что ты написал! Надо как минимум книгу прочесть в разрезе ВБА для профессионалов - отсюда следует, что перед тем как ее прочесть, надо прочесть ВБА для чайников! smile 
Нет ни сил на это не времени! Я просто думал что это решится как то молниеносно! 
Например убери галочку там то и будет тебе счастье!

Макросы могу писать только  путем элементарного (начать запись, все проделываем ручками, останавливаем запись, ну может чуть чуть где подправлю, и все макрос готов) smile 


--------------------
Я не волшебник, я только учусь!  smile 
PM MAIL   Вверх
Akina
Дата 8.1.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Ved @  8.1.2009,  13:59 Найти цитируемый пост)
Чтобы даже понять дословно все что ты написал! Надо как минимум книгу прочесть в разрезе ВБА для профессионалов - отсюда следует, что перед тем как ее прочесть, надо прочесть ВБА для чайников!

Слова того, кто не просто считает себя чайником, а лелеет эту убеждённость и не намерен что-либо менять.

Цитата(Ved @  8.1.2009,  13:59 Найти цитируемый пост)
Макросы могу писать только  путем элементарного (начать запись, все проделываем ручками, останавливаем запись, ну может чуть чуть где подправлю, и все макрос готов) 

Этого вполне достаточно для решения твоей проблемы.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ved
Дата 8.1.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 3.8.2006
Где: Хижина в Тетюшах

Репутация: нет
Всего: 1



Akina, 
Цитата

Этого вполне достаточно для решения твоей проблемы. 

Будь другом, скажи порядок моих действий!
Что именно я должен сделать? Я не совсем понимаю решение своей проблемы! smile 

Akina, 
Цитата

Ответ МСДНпосмотреть или ручками все сделай и все!

Просто не пойму, в МСДН не знаю даже что искать! Как сформулировать свой вопрос!
Ручками если то что именно? Вес отчет отредактировать и посмотреть что получится!??? Не вариант, они разные, не поможет такое действие! smile 

Это сообщение отредактировал(а) Ved - 8.1.2009, 13:23


--------------------
Я не волшебник, я только учусь!  smile 
PM MAIL   Вверх
mihanik
Дата 8.1.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Ved, итак...

Если будем пытаться решать эту проблему "ручками", то оставляем эту тему здесь.

Если будем пытаться решить программированием, то создай новую тему в соседнем разделе.



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Ved
Дата 8.1.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 3.8.2006
Где: Хижина в Тетюшах

Репутация: нет
Всего: 1



mihanik, 
Цитата

Ved, итак...

Если будем пытаться решать эту проблему "ручками", то оставляем эту тему здесь.

Если будем пытаться решить программированием, то создай новую тему в соседнем разделе.


А как быстрее? И легче? smile 

Как модератора понимаю! Непорядка не должно быть! Перенеси пожалуйста тогда в раздел программирования! Щас по МСДНки лазю! Так по оглавлению все читаю! Не знаю что именно какой запрос мне для нее (МСДН) подойдет!  smile 


--------------------
Я не волшебник, я только учусь!  smile 
PM MAIL   Вверх
mihanik
Дата 8.1.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Лазать?

Работа с текстовыми файлами.
filesystemobject

Я бы брал программно открывал бы исходный файл, удалял бы из него многобайтные esc-коды, результат бы записывал в новый файл.

Новый файл потом было бы просто открыть и распечатать...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
temr
Дата 8.1.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 30.3.2006

Репутация: нет
Всего: нет



Вот код который окрывает файл текстовый файл построчно 

Код

path_to_file = "C:\2331.las"
Open path_to_file For Binary As #1   'path_to_file
l = LOF(1)
buf = String(l, Chr(0))
Get #1, , buf
Close #1
la = Split(buf, vbCrLf)


Далее нужно разобрать каждую строку и вписать ее в ячейку листа 

Код


xx=1
yy=1
For logstr = lbound(la) To UBound(la)

strlen = Len(la(logstr))
'MsgBox (strlen)

'DoEvents
    If la(logstr) <> Empty Then
     For ix = 0 To strlen
          bgn = 1
           Do Until Mid$(la(logstr), ix + bgn, 1) ="│" 
              bgn = bgn + 1
              If bgn > strlen Then Exit Do
           Loop
        ennd = 1
            Do Until Mid$(la(logstr), ix + bgn + ennd, 1) = "│"
               ennd = ennd + 1
                If ennd > strlen Then Exit Do
            Loop
Cells(xx, yy) = trim(Mid$(la(logstr), ix + bgn, ennd))
yy = yy + 1
    ix=ix+ennd-1           
     Next ix

   End If
xx=xx+1
Next logstr





Единственная проблема может быть с кодировкой 
PM MAIL   Вверх
mihanik
Дата 8.1.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Уж очень сложно...
Ты считываешь файл посимвольно в бинарном режиме, потом режешь его на строки по VbCrLf...
Можно было бы использовать filesystemobject и для всего дать команду ReadAll.

А кодировка...

Код

'********************************************************************        
'*                                                                           
'* Функция   DosToWin (ByVal S)
'* Описание: Переводит строку из досовской кодировки в Windows-кодиpовку
'* Вход    : строка в dos-кодировке
'* Выход   : та же строка, только в Windows-кодиpовке
'*                                                                           
'********************************************************************  
Function DosToWin(ByVal S)
Dim i,k,ss
  ss = ""
  For i=1 To Len(s)
  ' Цикл по всем символам в стpоке
    k = Asc(Mid(s,i,1))
    ' Опpеделяем ANSI-код i-го символа
    ' Изменяем код k на код соответствующего символа в 
    ' Windows-кодиpовке
    If (128 <= k) And (k <= 175) Then
      k=k+64
    ElseIf (224 <= k) And (k <= 239) Then
      k=k+16
    ElseIf k = 240 Then
      k=168
    ElseIf k = 241 Then
      k=184
    End If
    ss=ss+Chr(k) 
  Next
  DosToWin=ss
  ' Возвpащаем пpеобpазованную стpоку
End Function



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Akina
Дата 8.1.2009, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Ved @  8.1.2009,  14:20 Найти цитируемый пост)
Будь другом, скажи порядок моих действий!
Что именно я должен сделать? Я не совсем понимаю решение своей проблемы!

Рассказываю.
Открываешь текст в Ворде - вот как на твоем скрине. Выделяешь любую последовательность, подлежащую удалению (скажем, квадратик - тире - единичка), копируешь её в буфер. Ставишь курсор в самое начало текста. Включаешь макрорекордер. Вызываешь меню поиска и замены. В строку поиска вставляешь содержимое буфера, строку замены оставляешь пустой. Нажимаешь "Заменить всё". Останавливаешь макрорекордер. Всё, у тебя на руках макрос, убирающий именно эту последовательность символов.
Если у теябя, как ты уверяешь, хватает соображалки для минимальной корректировки макроса, то ты в него добавишь удаление второй-третьей-...-последней из подлежащих удалению последовательностей, и получишь макрос, который одним махом чистит, и, как следствие, выравнивает текст. Ну а если не хватает - запиши так же макрос удаления второй последовательности, потом третьей... и когда запишешь все, запиши макрос последовательного запуска всех записанных ранее макросов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.