Подсчет букв в загруженном файле - VB

Узнай цену своей работы

Формулировка задачи:

Написала код, для подсчета букв в загруженном файле. Для меня слишком громоздко, хочется как-то компактнее. Пробую сделать через регулярные выражения, но не очень получается, помогите пожалуйста
Листинг программы
  1. Private Sub CommandButton2_Click()
  2. Dim TextLine
  3. Open x For Input As #1
  4. Do While Not EOF(1)
  5. i = i + 1
  6. Line Input #1, TextLine
  7. ThisWorkbook.Worksheets("Ëèñò1").Cells(i, 1).Value = TextLine
  8. Loop
  9. Close #1
  10. v1 = Sheets("Ëèñò1").Cells(Rows.Count, 1).End(xlUp).Row
  11. i = 0
  12. If TextBox1.Text = Empty Then
  13. MsgBox "Файл не выбран!"
  14. Else
  15. Dim arrBuk(33), arrBukvi(33), perebor(32)
  16. Label1.Caption = "Всего букв в тексте:"
  17. perebor(0) = "а"
  18. perebor(1) = "б"
  19. perebor(2) = "в"
  20. perebor(3) = "г"
  21. perebor(4) = "д"
  22. perebor(5) = "е"
  23. perebor(6) = "ё"
  24. perebor(7) = "ж"
  25. perebor(8) = "з"
  26. perebor(9) = "и"
  27. perebor(10) = "й"
  28. perebor(11) = "к"
  29. perebor(12) = "л"
  30. perebor(13) = "м"
  31. perebor(14) = "н"
  32. perebor(15) = "о"
  33. perebor(16) = "п"
  34. perebor(17) = "р"
  35. perebor(18) = "с"
  36. perebor(19) = "т"
  37. perebor(20) = "у"
  38. perebor(21) = "ф"
  39. perebor(22) = "х"
  40. perebor(23) = "ц"
  41. perebor(24) = "ч"
  42. perebor(25) = "ш"
  43. perebor(26) = "щ"
  44. perebor(27) = "ы"
  45. perebor(28) = "ъ"
  46. perebor(29) = "ь"
  47. perebor(30) = "э"
  48. perebor(31) = "ю"
  49. perebor(32) = "я"
  50. For por = 0 To 32
  51. For v = 1 To v1
  52. arrBuk(por) = Len(Cells(v, 1)) - Len(Replace(Cells(v, 1), perebor(por), ""))
  53. arrBukvi(por) = arrBukvi(por) + arrBuk(por)
  54. vcegobukv = vcegobukv + arrBuk(por)
  55. Next v
  56. Next por
  57. Label2 = vcegobukv
  58. End If
  59. End Sub

Решение задачи: «Подсчет букв в загруженном файле»

textual
Листинг программы
  1. Sub ChrBinary(sFn As String)
  2.   ' ChrBinary
  3.  Dim iFn As Integer
  4.   Dim sData As String
  5.   Dim iChr As Integer
  6.   Dim iChrTablePos As Integer
  7.   Dim lFileSize As Long
  8.   Dim lI As Long
  9.   '
  10.  For iChrTablePos = 0 To 255
  11.     ' Обнуляем массив для результатов
  12.    lChrTable(iChrTablePos) = 0
  13.   Next iChrTablePos
  14.   iFn = FreeFile
  15.   Open sFn For Binary As #iFn
  16.   lFileSize = LOF(iFn)
  17.   sData = String$(lFileSize, Chr$(0))
  18.   Seek #iFn, 1
  19.   Get #iFn, , sData
  20.   For lI = 1 To Len(sData)
  21.     iChr = Asc(Mid$(sData, lI, 1))
  22.     For iChrTablePos = 0 To 255
  23.       If iChr = iChrTablePos Then
  24.         ' Есть такой символ - добавляем единичку к сумме
  25.        lChrTable(iChrTablePos) = lChrTable(iChrTablePos) + 1
  26.         Exit For
  27.       End If
  28.     Next iChrTablePos
  29.   Next lI
  30.   Close iFn
  31. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы