Плиз помогите студентке не очень шарящей в BASIC

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MashaGTO
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.06.2006 (Вт) 19:47

Плиз помогите студентке не очень шарящей в BASIC

Сообщение MashaGTO » 06.06.2006 (Вт) 19:50

1: Удалить из текста каждое 3 слово
2: Заменить в тексте все слова содержащие английские буквы символом &

Вот задания , знаю что решаются в 2 т=строчки но ненаю КАК =( Даже не знаю кого еще попросить помочь мне. Реально очень нужно для сессии .... Помогите пож. мальчики . Чмоки вас всех

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 06.06.2006 (Вт) 21:14

1. Сплитом разбить текст на массив слов и очистить в цикле каждый третий элемент.
Я не говорю что это оптимально :)
Если всё делать своими ручками, они скоро отвалятся !

MashaGTO
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.06.2006 (Вт) 19:47

Сообщение MashaGTO » 06.06.2006 (Вт) 21:57

А может кто нибуть сам текст проги написать ?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 06.06.2006 (Вт) 22:17

Код: Выделить всё
Option Explicit
Private Const strInput As String = "Every day I go to the swimming pool"
Dim StrTemp() As String, counter As Long
Private Sub Form_Load()
StrTemp = Split(strInput, " ")
For counter = LBound(StrTemp) To UBound(StrTemp) Step 3
    If counter = 0 Then
        DoEvents
    Else
        StrTemp(counter - 1) = vbNullString
    End If
Next counter
For counter = LBound(StrTemp) To UBound(StrTemp)
    Text1.Text = Text1.Text + " " + StrTemp(counter)
Next counter
End Sub
Если всё делать своими ручками, они скоро отвалятся !

MashaGTO
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.06.2006 (Вт) 19:47

Сообщение MashaGTO » 06.06.2006 (Вт) 22:41

а второе как ? Огромное спасибо за первое ... Даже не наю как отблагадорить тебя ... Че нить придумаю

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.06.2006 (Вт) 22:57

Вот второй....

Код: Выделить всё

sText="Тут будет HCAJ текст с kjjjhdsf латинскими буквами"
For i = 1 To Len(sText)
Mid$(sText, i, 1) = IIf(Mid$(sText, i, 1) Like "[A-z]","&",Mid$(sText, i, 1))
Next i
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 07.06.2006 (Ср) 7:25

Заменить в тексте все слова содержащие английские буквы символом &

т.е. все слово заменяется на один символ & а не буква.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.06.2006 (Ср) 11:02

Какой грамотный пример социального инжиниринга :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2006 (Ср) 17:13

Тогда так
Код: Выделить всё

sText="Тут будет HCAJ текст с kjjjhdsf латинскими буквами"

'_________________

Function DoReplacements(ByVal sInput As String) As String
Dim sWords() As String
Dim iLatSigns As Integer
  sWords = Split(sInput, " ")
  For i = LBound(sWords) To UBound(sWords)
   iLatSigns = IsLatWord(sWord(i))
   'Тут всё зависет от того, в каком случае следует менять слово
   'если в нём есть хоть одна лат. буква или если все его буквы - лат.
   'Я расчитываю на 1-вый вариант, если же надо как 2
   'То просто нужно просто заменить iLatSigns > 0
   'на iLatSigns = Len(sWords(i))
   if iLatSigns > 0 Then
     sWords(i) = String(Len(sWords(i)), "&")
   End If
  Next i
  DoReplacements = Join(sWords, " ")
End Function

Function IsLatWord(ByVal sWord As String) As Integer
   For i = 1 To Len(sWord)
     If mid$(sWord, i, 1) Like "[A-z]" Then
       IsLatWord = IsLatWord+1
     End If
   Next i
End Function
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.06.2006 (Ср) 18:27

Не могу не напомнить, что у Split и Join пробел -- разделитель по умолчанию, и явно указывать его необязательно.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.06.2006 (Ср) 18:50

RayShade писал(а):Какой грамотный пример социального инжиниринга :)

Не помнишь, кто там был тебе очень благодарен? :)
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2006 (Ср) 19:05

tyomitch, это для понятности (т.е. наглядности) кода.

alibek, RayShade вы о чём?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.06.2006 (Ср) 19:12

О разводах, о чем же еще.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Bing-бот, SemrushBot и гости: 105

    TopList