powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена запятой на точку у чисел
5 сообщений из 5, страница 1 из 1
Замена запятой на точку у чисел
    #36618121
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Нужно сделать так, чтобы в строке (string) только у чисел разделитель целой и дробной части (запятая) менялся на точку. В остальных местах, где встречается запятая, менять ее не нужно.
Это понадобилось потому, что при импорте формулы из текстового файла запятая меняется на точку с запятой, и из-за этого всё портится.
Если же в файле заменить запятую на точку, то при импорте получается запятая.
Правда, пока точно не уверен, встречаются ли у меня запятые еще кроме как в числах, но иногда это может быть где-то теоретически. Например, как разделитель аргументов функции или что-то в этом роде.
Здесь проблема как раз в этом, будут ли еще запятые где-нибудь. Если нет, то можно просто с помощью Replace. Но если будут, надо как-то определять это для чисел.
Когда-то я делал похожую вещь на PHP. М.б., у кого-нибудь есть готовая функция для VBA?
...
Рейтинг: 0 / 0
Замена запятой на точку у чисел
    #36618133
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так а какая может быть строка? и какие варианты чисел. Без примера сложно же судить, все зависит от ваших исходных данных.
Можно, например, поискать вперед и назад обрамляющие пробелы и концы строк, вычленить данное "слово" и проверить его функцией IsNumeric. Можно посмотреть два соседних знака, являются ли они цифрами... В общем нет конкретного ответа пока.
...
Рейтинг: 0 / 0
Замена запятой на точку у чисел
    #36618139
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка - некоторая формула с возможными вложенностями, скобки, знаки и т.п.
Например, такая =3+5,2*МИН(5;2+3,5).
Теоретически может и такая: =Ф(5,3+B1). И вот тут-то начинаются проблемы - то ли это 2 аргумента через запятую, то ли это число 5,3. Поэтому по идее надо везде делать точку с запятой.
...
Рейтинг: 0 / 0
Замена запятой на точку у чисел
    #36618141
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motorwayНапример, как разделитель аргументов функции или что-то в этом роде.

Ну, допустим, встретится у вас сочетание МояФункция(1,2)
И как определить, то ли это один аргумент дробный, то ли два целых аргумента через запятую.
Так что уж формализуйте свои требования. Тогда и ответ сам придет.
...
Рейтинг: 0 / 0
Замена запятой на точку у чисел
    #36618145
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motorwayТеоретически может и такая: =Ф(5,3+B1). И вот тут-то начинаются проблемы - то ли это 2 аргумента через запятую, то ли это число 5,3. Поэтому по идее надо везде делать точку с запятой.

вот и я о том.
Так кроме вас этого никто не знает
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена запятой на точку у чисел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]