powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сравнение строк
12 сообщений из 12, страница 1 из 1
сравнение строк
    #32901798
_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет
как можно сравнить две строки и вывести разницу?
спасибо
...
Рейтинг: 0 / 0
сравнение строк
    #32902029
Flare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
string1="Проценты по овердрафту"
string2="Депозит корпоративной карты"

Ответьте мне, задающий столь фундаментальнейший вопрос о сравнении строк, какой по вашему в этом случае должна получиться разница?
:)
...
Рейтинг: 0 / 0
сравнение строк
    #32902088
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
i=vba.StrComp(s1,s2,vbTextCompare)
...
Рейтинг: 0 / 0
сравнение строк
    #32903329
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чё вам так не нравится If Строка1 = Строка2 Then ...? :)
...
Рейтинг: 0 / 0
сравнение строк
    #32903353
_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
string1 = "Проценты по овердрафту"
string2 = "Проценты по овердрафту такие"
после сравнения должно получиться:
string3 = " такие"
...
Рейтинг: 0 / 0
сравнение строк
    #32903367
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторstring1 = "Проценты по овердрафту"
string2 = "Проценты по овердрафту такие"
после сравнения должно получиться:
string3 = " такие"

при таких условиях
вероято ф-ция REPLACE

REPLACE(string2, string1,"")

и надо чтоб строка с большей длиной была 1 параметром, 2 строка - 2 параметром
...
Рейтинг: 0 / 0
сравнение строк
    #32903476
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы "сравнить две строки и вывести разницу" надо "сравнить две строки и вывести разницу" :-)
если надо сравнить по вхождению слов:
1. преобразовать обе строки в массивы слов a1 и a2
2. поиск слов массива a1 в массиве a2 -> всё что не найдено сохраняем в массив c1
3. поиск слов массива a2 в массиве a1 -> всё что не найдено сохраняем в массив c2
4. вывести в качестве результата массивы c1 и c2
если надо сравнить по символам - алгоритм явно сложнее, но прицип тот же
...
Рейтинг: 0 / 0
сравнение строк
    #32903525
_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Marvan
я так и делаю (пытаюсь), но ClearQuest с массивами не дружит... вот и извращаюсь... думаю чем массивы заменить можно
...
Рейтинг: 0 / 0
сравнение строк
    #32903650
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем пример HandKot не устраивает?
Доработать лишь немного и все:
Код: plaintext
1.
2.
3.
4.
5.
6.
Function Разница(Строка1 As String, Строка2 As String) As String
   If InStr( 1 , Строка1, Строка2) >  0  Then
      Разница = Replace(Строка1, Строка2, "")
   ElseIf InStr( 1 , Строка2, Строка1) >  0  Then
      Разница = Replace(Строка2, Строка1, "")
   End If
End Function
...
Рейтинг: 0 / 0
сравнение строк
    #32903671
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_гостьClearQuest с массивами не дружит
если в нём есть VBA, то дружит.
...
Рейтинг: 0 / 0
сравнение строк
    #32903728
_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
\t\tfor\xa0i\xa0=\xa01\xa0to\xa0len(oldVal)\xa0step\xa013
\' msgbox(left(cstr(oldVal),i+11) + ". " + cstr(i) + " - Old array")
\' msgbox(right(left(cstr(oldVal),i+11),12) + ". " + cstr(i) + " - Old array")
\' msgbox(left(cstr(newVal),i+11) + ". " + cstr(i) + " - New array")
\' msgbox(right(left(cstr(newVal),i+11),12) + ". " + cstr(i) + " - New array")
\' msgbox(cstr(arrOld(i)) + " " + i + " - Old array")
\t\t\tif\xa0not\xa0right(left(cstr(oldVal),i+11),12)\xa0=\xa0right(left(cstr(newVal),i+11),12)\xa0then
\t\t\t\tdefVal\xa0=\xa0right(left(cstr(oldVal),i+11),12)
\' msgbox(cstr(defVal))
\t\t\t\texit\xa0for
\t\t\tend\xa0if
\t\tnext


 
Как отформатирован этот код?

а VBA там даже без дебагера и сильно урезанный.
Всем спасибо.
...
Рейтинг: 0 / 0
сравнение строк
    #32903747
_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл пояснить:
строки разбиваю по 12 симолов (такая длина ID в ClearQuest) и несовпадение сохраняю
Всем еще раз спасибо.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сравнение строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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