Как мне сделать конкатенацию? VB6 - PullRequest
0 голосов
/ 30 января 2020

У меня есть ListView, который заполнен TextBoxes данными, мне нужно, чтобы при сохранении все значения сохранялись конкатенацией таким образом:

enter image description here

Значение / Значение

Но меня это так удерживает:

Значение / / Значение

[IMAGE[1]

Как можно Вы это исправили?

Это мой код для сохранения кнопки:

        Dim StringPrefijoTel As String
        Dim StringNumeroTel As String


        Dim StringPrefijoCel As String
        Dim StringNumeroCel As String

        Dim i As Integer

        For i = 1 To List_Contactos.ListItems.Count
            If List_Contactos.ListItems(i).SubItems(1) = "Fijo" Then
                StringPrefijoTel = List_Contactos.ListItems(i).SubItems(2)
                If StringNumeroTel = "" Then
                    StringNumeroTel = List_Contactos.ListItems.Item(i).SubItems(3) + " / " + StringNumeroTel
                Else
                    StringNumeroTel = StringNumeroTel + " / " + List_Contactos.ListItems.Item(i).SubItems(3)
                End If


                Rs!actelcli = StringNumeroTel
                Rs!preFijo = StringPrefijoTel
            Else
                StringPrefijoCel = List_Contactos.ListItems(i).SubItems(2)
                If StringNumeroCel = "" Then
                    StringNumeroCel = List_Contactos.ListItems.Item(i).SubItems(3) + " / " + StringNumeroCel
                Else
                    StringNumeroCel = StringNumeroCel + " / " + List_Contactos.ListItems.Item(i).SubItems(3)
                End If


                Rs!preCelu = StringPrefijoCel
                Rs!Celu = StringNumeroCel
            End If
        Next i

Ответы [ 2 ]

1 голос
/ 30 января 2020

Похоже, вы пытаетесь не завершать строку /. Существует несколько способов достижения sh этой цели, но вот как я бы структурировал код:

For i = 1 To List_Contactos.ListItems.Count
   If List_Contactos.ListItems(i).SubItems(1) = "Fijo" Then
      StringPrefijoTel = List_Contactos.ListItems(i).SubItems(2)
      StringNumeroTel = StringNumeroTel & List_Contactos.ListItems.Item(i).SubItems(3) & " / "
   Else
      StringPrefijoCel = List_Contactos.ListItems(i).SubItems(2)
      StringNumeroCel = StringNumeroCel & List_Contactos.ListItems.Item(i).SubItems(3) & " / "
   End If
Next i

Rs!actelcli = Left(StringNumeroTel, Len(StringNumeroTel) - 3)
Rs!preFijo = StringPrefijoTel
Rs!Celu = Left(StringNumeroCel, Len(StringNumeroCel) - 3)
Rs!preCelu = StringPrefijoCel

Несколько комментариев. Во-первых, держите свой l oop простым и не беспокойтесь о дополнительных /. Вы можете позаботиться об этом позже. Во-вторых, материал RecordSet не обязательно должен быть внутри l oop. Ничего не больно, но я бы переместил это за пределы 1015 *. В-третьих, не забудьте удалить дополнительный трейлинг / перед сохранением данных.

Кроме того, для конкатенации используется &, а не +.

0 голосов
/ 18 февраля 2020

Вы можете использовать функцию замены в VB6, чтобы заменить все двойные косые черты на один сл sh, например: a = Replace(StringToFind,"//","/")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...