All Forums
 Категория Visio
 Форум Вопросы и ответы
 Удалить quotation marks
Author Previous Topic Topic Next Topic  

Евгений

88 Posts

Posted - 01/14/2005 :  18:01:09
Скажем, вот такой код:

Dim str as String
str = shpSomeShape.Cells("Prop.Some_prop").Formula
MsgBox str

В переменной str записываются также quotation marks из формулы, которые мне абсолютно не нужны. Как их не получать или удалять?

Евгений

88 Posts

Posted - 01/14/2005 :  18:26:38
В принципе сделал так:
jobFrom = Mid(shp.Cells("Prop.Job_name").Formula, 2, Len(shp.Cells("Prop.Job_name").Formula) - 2)
                        jobSuffixFrom = Mid(shp.Cells("Prop.Job_suffix").Formula, 2, Len(shp.Cells("Prop.Job_suffix").Formula) - 2)
                        tableFrom = Mid(shp.Cells("Prop.Table_name").Formula, 2, Len(shp.Cells("Prop.Table_name").Formula) - 2)
                        hldFrom = Mid(shp.Cells("Prop.Hld").Formula, 2, Len(shp.Cells("Prop.Hld").Formula) - 2)
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 01/14/2005 :  19:27:25
Не получать нельзя.
Для удаления Visio 2003 SDK предлагает следующую функцию (хотя я для простоты часто пользуюсь обычным Replace(String, CHR(34), "") )

' modFormulaToString / FormulaToString.bas
' Copyright (c) Microsoft Corporation. All rights reserved.

' This file contains code that converts a Visio formula to a string.

Public Function FormulaStringToString(ByVal strFormula As String) As String
'
' FormulaStringToString
'
' Abstract - The FormulaStringToString function is used to format a
' Visio formula value as a standard string.
'
' Remarks: The strFormula[U] methods return the strFormula as entered in
' the shapesheet. Therefore, string formulas are wrapped
' in quote marks and an extra quote char is used when it is
' desired to place a quote character within a strFormula string.
'
' Parameters
' strFormula The value returned from a call
' to the strFormula[U] property of a cell object.
'
' Return Value Converted string (If an error occurs with the
' conversion, an empty string is returned.)
'
Const ONE_QUOTE As String = """"
Const TWO_QUOTES As String = """"""

Dim strConvertedFormula As String
Dim strFirstCharacter As String
Dim strLastCharacter As String
Dim intStringLength As Integer

On Error GoTo FormulaStringToString_Err

'Initialize the converted strFormula from the value passed in.
strConvertedFormula = strFormula

intStringLength = Len(strFormula)
strFirstCharacter = Mid(strFormula, 1, 1)
strLastCharacter = Mid(strFormula, intStringLength, 1)

' Check if this strFormula[U] value is a quoted string.
' If it is, remove extra quote characters.
If (strFirstCharacter = ONE_QUOTE And _
strLastCharacter = ONE_QUOTE) Then

' Remove the wrapping quote characters as well as any
' extra quote marks in the body of the string.
strConvertedFormula = Mid(strFormula, 2, (intStringLength - 2))
strConvertedFormula = Replace(strConvertedFormula, _
TWO_QUOTES, ONE_QUOTE)
End If

FormulaStringToString_End:

FormulaStringToString = strConvertedFormula

Exit Function

FormulaStringToString_Err:

'Return a empty string if error occurs.
strConvertedFormula = ""

'Display the error.
Debug.Print Err.Description

Resume FormulaStringToString_End

End Function
Go to Top of Page

Евгений

88 Posts

Posted - 01/17/2005 :  12:45:23
Спасибо, но, видимо, действительно ваш и даже мой способы лучше - хотя бы короче.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)