Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сравнение строк / 12 сообщений из 12, страница 1 из 1
04.02.2005, 16:12:41
    #32901798
_гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сравнение строк
Привет
как можно сравнить две строки и вывести разницу?
спасибо
...
Рейтинг: 0 / 0
04.02.2005, 17:30:34
    #32902029
Flare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сравнение строк
string1="Проценты по овердрафту"
string2="Депозит корпоративной карты"

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

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

REPLACE(string2, string1,"")

и надо чтоб строка с большей длиной была 1 параметром, 2 строка - 2 параметром
...
Рейтинг: 0 / 0
07.02.2005, 10:14:05
    #32903476
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сравнение строк
Для того, чтобы "сравнить две строки и вывести разницу" надо "сравнить две строки и вывести разницу" :-)
если надо сравнить по вхождению слов:
1. преобразовать обе строки в массивы слов a1 и a2
2. поиск слов массива a1 в массиве a2 -> всё что не найдено сохраняем в массив c1
3. поиск слов массива a2 в массиве a1 -> всё что не найдено сохраняем в массив c2
4. вывести в качестве результата массивы c1 и c2
если надо сравнить по символам - алгоритм явно сложнее, но прицип тот же
...
Рейтинг: 0 / 0
07.02.2005, 10:40:30
    #32903525
_гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сравнение строк
2 Marvan
я так и делаю (пытаюсь), но ClearQuest с массивами не дружит... вот и извращаюсь... думаю чем массивы заменить можно
...
Рейтинг: 0 / 0
07.02.2005, 11:31:11
    #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
07.02.2005, 11:39:43
    #32903671
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сравнение строк
_гостьClearQuest с массивами не дружит
если в нём есть VBA, то дружит.
...
Рейтинг: 0 / 0
07.02.2005, 11:56:13
    #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
07.02.2005, 12:00:46
    #32903747
_гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сравнение строк
забыл пояснить:
строки разбиваю по 12 симолов (такая длина ID в ClearQuest) и несовпадение сохраняю
Всем еще раз спасибо.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сравнение строк / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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