All Forums
 Категория Visio
 Форум Обсуждения
 Двойные кавычки
Author Previous Topic Topic Next Topic  

arturik

Russia
29 Posts

Posted - 02/03/2006 :  07:37:26  Visit arturik's Homepage
Добрый день(утро, вечер, ночь). У меня есть небольшая проблемка когда я беру данные с помощью Visual Basica из ячейки то техт, находящийся в ячейке берется прямо с кавычками. Поэтому для работы сним мне приходиться сначала узнавать его длину, потом обрезать крайние кавычки и только после этого работать с ним что не очень удобно. Может кто знает как поступить проще.

Мне постоянно приходиться использовать примерно такой код
s = объект.cellsU("user.1").formula
l = len(s)
s = mid(s,2,l-2)

Подскажите может есть метод попроще.

Заранее благодарен.

Tumanov

Russia
1198 Posts

Posted - 02/03/2006 :  18:52:39
Уже обсуждалось...
Попроще только Replace(s,Chr(34),""), но это не всегда корректно.
А Microsoft в Visio SDK предлагает пользоваться вот такой функцией:

' 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

arturik

Russia
29 Posts

Posted - 02/16/2006 :  11:42:33  Visit arturik's Homepage
Спасибо за ответ Господин Туманов. Данная функция мне очень пригодилась. Хотя они могли бы сделать это все на автомате сами.
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)