StringBuffer COM DLL (Free Binary) (3 người xem)

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

phuongnam366377

Thành viên thường trực
Tham gia
25/10/19
Bài viết
221
Được thích
226
1/ Ý tưởng từ chủ đề sau


2/ Tôi + ChatGPT viết nhanh khoãng gần 2 tiếng cho Thư viện sau cơ bản hoàn thành

3/ ChatGPT viết bài giới thiệu nhanh

4/ Mai mốt úp lên Github sau ...

5/ Nội dung sau do ChatGPT biên soạn theo chỉ đạo của Tôi


StringBuffer COM DLL (Free Binary)​

High-performance StringBuffer COM library for VBA / VB6 / Delphi / C++ Builder
Free to use – Binary only (no source code)


✨ Giới thiệu​

StringBuffer là một COM DLL miễn phí, tập trung vào hiệu năng cao khi xử lý chuỗi và số lượng lớn dữ liệu trong môi trường VBA / Automation.

Thư viện được thiết kế để thay thế các thao tác chuỗi chậm trong VBA, đặc biệt là:

  • Split
  • Join
  • Ghép chuỗi trong vòng lặp lớn
  • Xử lý số 64-bit
⚠️ Lưu ý:

  • Chỉ phát hành DLL nhị phân (binary)
  • Không cung cấp mã nguồn

Công nghệ & Nền tảng​

Thư viện được phát triển và build bằng:

  • C++Builder (Delphi) 11.3
  • COM / Automation (IDispatch)
  • Unicode UTF-16 (BSTR, SAFEARRAY)
  • Runtime ổn định, tương thích tốt với hệ sinh thái Windows

Tương thích hoàn toàn với:​

  • Excel VBA
  • Access VBA
  • VB6
  • Delphi
  • C++ / C++Builder (Automation client)
Việc sử dụng C++Builder trên Delphi 11.3 đảm bảo:

  • ABI COM chuẩn
  • Quản lý Unicode/BSTR an toàn
  • Hiệu năng cao hơn so với COM viết thuần VBA hoặc Script

Mục tiêu thiết kế​

  • ⚡ Tốc độ cao hơn VBA thuần
  • Hạn chế Variant, BSTR trung gian
  • Giảm cấp phát bộ nhớ lặp lại
  • Ổn định cho workload lớn (100k – hàng triệu phần tử)

Các tính năng chính​

Xử lý chuỗi​

  • Append
  • AppendChar
  • Insert, Delete, Replace
  • Substring, Reverse
  • Trim, ToUpper, ToLower
  • IndexOf, LastIndexOf
  • StartsWith, EndsWith, Contains

Số & mảng (tối ưu cho VBA)​

  • AppendInt64Parts(Lo, Hi)
  • AppendInt64Range(Start, Count)
  • SplitCharToLongArray
  • SplitCharToInt64Array

✂️ Split / Join​

  • Split
  • SplitChar
  • Trả về SAFEARRAY (nhanh hơn VBA Split)

⚙️ Hiệu năng​

  • EnsureCapacity – cấp phát trước bộ nhớ
  • Phù hợp cho vòng lặp hàng trăm nghìn / hàng triệu lần

⚡ Hiệu năng thực tế (VBA)​

SplitCharToInt64Array : 0.001s
VBA Split + CLngLng : 0.020s


Ví dụ VBA​

Mã:
Sub Full_Buffer_Test()
    Dim buff As StringBuffer
    Set buff = New StringBuffer

    buff.Append "ABFGH"
    Debug.Print buff.Value

    buff.Insert 3, "CDE"
    Debug.Print buff.Value

    buff.Reverse
    Debug.Print buff.Value

    buff.Replace 2, 2, "XX"
    Debug.Print buff.Value

    buff.Reverse
    Debug.Print buff.Value

    buff.Delete 6, 2
    Debug.Print buff.Value

    Debug.Print buff.Substring(2, 3)
End Sub

License & Distribution​

  • Free to use
  • ✔ Dùng cho cá nhân hoặc thương mại
  • ❌ Không cung cấp mã nguồn
  • ❌ Cho phép decompile / reverse engineering ... tha hồ thoải mái và úp hết mã lên đây cho vui

Ghi chú​

  • Đây là COM DLL native, không phải .NET
  • Tập trung hiệu năng & độ ổn định, không chạy theo API “đủ thứ”
  • Phù hợp cho các project VBA lớn, xử lý dữ liệu nặng

Liên hệ​

Nếu bạn gặp bug, vấn đề tương thích hoặc có đề xuất API, hãy mở Issue trên GitHub.


Hình ảnh nhìn từ VBA như sau

1769417259612.png
 
Lần chỉnh sửa cuối:

Bài viết mới nhất

Back
Top Bottom