Birim İçeren Metinleri Toplayan Fonksiyon

Birim İçeren Metinleri Toplayan Fonksiyon

#2689 İleti | Seyyar Diyari | 23 Ekm 2020, 15:24

Bazı Servis Sağlayıcılar, "Kullanım Detayları" verirken Hesap Tablosunun açabileceği formatta döküm sunuyorlar. Fakat bu dökümanlarda detaylar sonuna KB, MB, GB gibi birimler eklenerek geliyorlar. Ondalık ayracı olarak Virgül (,) yerine Nokta (.) yazılmış olabiliyor.

"Kullanım Detayları" böyle olan bir dökümanda sonunda veri alış-verişi boyutu olan detayların GB cinsinden toplamını almak için bir LibreOffice Basic Makrosu kodladım :idea: . Topla() fonksiyonunda olduğu gibi toplanacak aralığı girebiliyor.

:arrow: Aynı işlemi Python ya da JS makrolarla daha hızlı yapmak mümkün müdür ?

Kod: Tümünü seç
REM  **** Kullanım Detaylarını Toplar  ****
Function NetTopla(range) As STRING
 Dim row, col As Integer
 Dim result, cell, newcell As STRING
 result = ""
 For row = LBound(range, 1) To UBound(range, 1)
    For col = LBound(range, 2) To UBound(range, 2)
      cell = range(row, col)
      newcell = ""
       For NoktaVirgul = LEN(cell) to 1 STEP -1
          This = MID(cell, NoktaVirgul, 1)
          If This = "." Then
             newcell = "," + newcell
          Else
             newcell = This + newcell
          End If       
       Next
       cell = newcell
      Birim = RIGHT(cell, 2)
      Select Case Birim
         Case " B"
            Bytes = CLng(LEFT(cell, LEN(cell) - 2))
            KiloBytes = Bytes / 1024
         Case "KB"
            KiloBytes = CLng(LEFT(cell, LEN(cell) - 3))
         Case "MB"
            MegaBytes = CLng(LEFT(cell, LEN(cell) - 3))
            KiloBytes = 1024 * MegaBytes
         Case "GB"
            GigaBytes = CLng(LEFT(cell, LEN(cell) - 3))
            KiloBytes = 1024 * 1024 * GigaBytes
         Case Else
      End Select
       result = CStr(CLng(KiloBytes) + CLng(result))
    Next
 Next
 NetTopla = CStr(CLng(result) / (1024 * 1024) & " GB")
End Function


Herkese Sağlıklı Günler :arrow:
Seyyar Diyari
 
İleti: 1
Kayıt: 23 Ekm 2020, 15:14
İşletim Sisteminiz: Ubuntu & Windows
LibreOffice Sürümü: 7.0.2

Calc - Hesap Tablosu

Kimler çevrimiçi

Kayıtlı kullanıcılar: Bing [Bot], Google [Bot], Google Feedfetcher