Birim İçeren Metinleri Toplayan Fonksiyon
Gönderilme zamanı: 23 Eki 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 . Topla() fonksiyonunda olduğu gibi toplanacak aralığı girebiliyor.
Aynı işlemi Python ya da JS makrolarla daha hızlı yapmak mümkün müdür ?
Herkese Sağlıklı Günler
"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 . Topla() fonksiyonunda olduğu gibi toplanacak aralığı girebiliyor.
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