AI muốn lập trình DLL cho Excel và các loại bằng Delphi thì xem video này nhé!

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Mạnh thấy Office 365 có mảng động rồi đó ... AI và nhiều thứ hay đấy ??!!
https://www.microsoft.com/en-us/microsoft-365/blog/2018/09/24/bringing-ai-to-excel-4-new-features-announced-today-at-ignite/
Hình sau của Bác Bill mô tả Mảng động
Excel-AI-image-4.gif
Tham khảo thêm
https://techcommunity.microsoft.com/t5/Excel-Blog/Preview-of-Dynamic-Arrays-in-Excel/ba-p/252944
Integrated Blog GIF final.gif
Hình Ảnh Copy từ 2 link trên
Chèn dữ liệu từ hình ảnh
https://support.office.com/en-us/article/insert-data-from-picture-3c1bb58d-2c59-4bc0-b04a-a671a6868fd7
 
Lần chỉnh sửa cuối:

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Rảnh lại nghiên cứu học lý thuyết Delphi từng bước một :p:p (viết code trước học lý thuyết sau ??)
Các Bạn cho Mình hỏi chút

1/ Mình thấy trong Delphi nó nói tới trình biên dịch C++ ... vậy là những ai đã từng học C++ thì có thể viết C++ trên Delphi hay sao ??

2/ Nếu mục 1 sai vậy họ nêu C++ trong Delphi có ý nghĩa gì

https://www.embarcadero.com/products/rad-studio/whats-new-in-10-3-rio
C++.PNG
3/ Mạnh thấy nó là 1 công cụ mạnh mẻ viết 1 code duy nhất chạy đa nền tảng lớn của thế giới nên có thời giản rảnh học hỏi từng bước 1
không phải nặng đầu suy nghĩ học nhiều ngôn ngữ khác nhau khi viết cho di động code khác ... máy tính code khác , macOS, iOS, Android và Linux ............. mệt lắm ( tập chung nghiên cứu, học Delphi là ok nhất )
https://www.embarcadero.com/products/delphi
IoT.PNG
 

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Lâu nay bận quá ko có thời gian học code Delphi ...

Nay Úp bài nhờ các bạn chuyển dùm code sau sang Delphi Mình với... đang lóng ngóng ko biết viết trên Delphi Sao !!!???
Mình muốn lưu cái chuỗi Kieu Van Manh vào file SD.dat
Code trên VBA như sau:
Mã:
Public Sub GetStr(ByVal sFile As String, ByVal St As String)
    Dim TG As Integer, VT As Integer
    TG = Len(St)
    Open sFile For Random As #1 Len = 2
        Put #1, 1, TG
        For VT = 1 To TG
            Put #1, VT + 1, 9911 + AscW(Mid(St, VT, 1))
        Next
    Close
End Sub
Rem ============
Sub Main_GetStr()
    Dim sFile As String
    sFile = ThisWorkbook.Path & "\SD.dat"
    Call GetStr(sFile, "Kieu Van Manh")
End Sub
Xin cảm ơn
 

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
Lâu nay bận quá ko có thời gian học code Delphi ...

Nay Úp bài nhờ các bạn chuyển dùm code sau sang Delphi Mình với... đang lóng ngóng ko biết viết trên Delphi Sao !!!???
Mình muốn lưu cái chuỗi Kieu Van Manh vào file SD.dat
Code trên VBA như sau:
Mã:
Public Sub GetStr(ByVal sFile As String, ByVal St As String)
    Dim TG As Integer, VT As Integer
    TG = Len(St)
    Open sFile For Random As #1 Len = 2
        Put #1, 1, TG
        For VT = 1 To TG
            Put #1, VT + 1, 9911 + AscW(Mid(St, VT, 1))
        Next
    Close
End Sub
Rem ============
Sub Main_GetStr()
    Dim sFile As String
    sFile = ThisWorkbook.Path & "\SD.dat"
    Call GetStr(sFile, "Kieu Van Manh")
End Sub
Xin cảm ơn
:stretcher::stretcher::stretcher::stretcher::stretcher::stretcher::stretcher:
 

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,023
Được thích
9,405
Điểm
860
Nơi ở
Hà Nội
Rảnh lại nghiên cứu học lý thuyết Delphi từng bước một :p:p (viết code trước học lý thuyết sau ??)
Các Bạn cho Mình hỏi chút

1/ Mình thấy trong Delphi nó nói tới trình biên dịch C++ ... vậy là những ai đã từng học C++ thì có thể viết C++ trên Delphi hay sao ??

2/ Nếu mục 1 sai vậy họ nêu C++ trong Delphi có ý nghĩa gì

https://www.embarcadero.com/products/rad-studio/whats-new-in-10-3-rio
View attachment 213666
3/ Mạnh thấy nó là 1 công cụ mạnh mẻ viết 1 code duy nhất chạy đa nền tảng lớn của thế giới nên có thời giản rảnh học hỏi từng bước 1
không phải nặng đầu suy nghĩ học nhiều ngôn ngữ khác nhau khi viết cho di động code khác ... máy tính code khác , macOS, iOS, Android và Linux ............. mệt lắm ( tập chung nghiên cứu, học Delphi là ok nhất )
https://www.embarcadero.com/products/delphi
View attachment 213665
Delphi là IDE môi trường lập trình và thiết kế ứng dụng nhanh, các mã lập trình được một Compiler biên dịch ra mã máy (các nền tảng). Vậy hiểu IDE mà môi trường thiết kế và biên tập code, còn đống code đó được Compiler biên dịch ra mã máy. Compiler của Delphi được viết bằng C++ và Assempler. Người lập trình Delphi không cần biết đến ngôn ngữ C++, chỉ cần Object Pascal.
Trong bộ RAD Studio có 2 IDE là Delphi và C++ Builder, cái C++ Builder này dành cho người biết ngô ngữ C++ lập trình trên đó và cũng xây dựng các phần mềm như làm với Delphi. Delphi cho phép nhúng Assempler vào nhưng C++ thì không. Tuy nhiên có cách người ta hay làm là nếu cần thì viết mã lệnh bên C++ rồi compiler ra OBJ, bên Delphi có thể link tới các file OBJ này để khai thác các hàm và thủ tục, và biên dịch ra mã máy cuối cùng.

Nhân đây khoe các bạn năm 1997 tôi đã viết game đầu tay bằng Pascal (viết theo hướng đối tượng với Object Pascal).
Thời xa xưa chỉ bằng Pascal for DOS người ta đã có thể tạo các kiểu phần mềm mặc dù khó khăn thì bây giờ Delphi hiện đại thì làm được rất rất nhiều thứ, chỉ lo không đủ thời gian trải nghiệm. Ai biết ngôn ngữ Pascal là một lợi thế khi học Delphi. Tuy nhiên đù chưa từng biết Object Pascal thì vẫn học đc không khó lắm + nguồn tư liệu trên internet bây giờ rất phòng phú.
 
Lần chỉnh sửa cuối:

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Anh dùng md5 băm cũng được mà
nếu biết thì đã làm rồi ... hình như nó keo là nhị phân thì phải
Bài đã được tự động gộp:

Lâu nay bận quá ko có thời gian học code Delphi ...

Nay Úp bài nhờ các bạn chuyển dùm code sau sang Delphi Mình với... đang lóng ngóng ko biết viết trên Delphi Sao !!!???
Mình muốn lưu cái chuỗi Kieu Van Manh vào file SD.dat
Code trên VBA như sau:
Mã:
Public Sub GetStr(ByVal sFile As String, ByVal St As String)
    Dim TG As Integer, VT As Integer
    TG = Len(St)
    Open sFile For Random As #1 Len = 2
        Put #1, 1, TG
        For VT = 1 To TG
            Put #1, VT + 1, 9911 + AscW(Mid(St, VT, 1))
        Next
    Close
End Sub
Rem ============
Sub Main_GetStr()
    Dim sFile As String
    sFile = ThisWorkbook.Path & "\SD.dat"
    Call GetStr(sFile, "Kieu Van Manh")
End Sub
Xin cảm ơn
To Anh @batman1 Nếu Anh có ghé qua làm giúp em bài này với để em học .... loay hoay mãi ko làm được :D
Em cảm ơn
 

batman1

Thành viên gắn bó
Tham gia ngày
8 Tháng chín 2014
Bài viết
1,666
Được thích
2,608
Điểm
360
Lâu nay bận quá ko có thời gian học code Delphi ...

Nay Úp bài nhờ các bạn chuyển dùm code sau sang Delphi Mình với... đang lóng ngóng ko biết viết trên Delphi Sao !!!???
Mình muốn lưu cái chuỗi Kieu Van Manh vào file SD.dat
Bạn không nói rõ ý tưởng nên khó cho người khác.
Bạn có thể gói ảnh, chuỗi, các Form (dialog) với Combobox, ListBox, TextBox ..., dữ liệu nhị phân ... trong "ruột" tập tin EXE. Cần soạn tập tin RC (R là Resources, C hình như là Compiled). Khi lấy ra thì dùng các hàm của Delphi (thay bạn gọi các hàm API) hoặc trực tiếp gọi API.
--------
Tôi hiện có khả năng rất hạn chế. Tôi đang ở Việt Nam nên thời gian không có nhiều, và "công cụ" không có
 

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Bạn không nói rõ ý tưởng nên khó cho người khác.
Bạn có thể gói ảnh, chuỗi, các Form (dialog) với Combobox, ListBox, TextBox ..., dữ liệu nhị phân ... trong "ruột" tập tin EXE. Cần soạn tập tin RC. Khi lấy ra thì dùng các hàm của Delphi (thay bạn gọi các hàm API) hoặc trực tiếp gọi API.
ý Em là mã hóa chuỗi Kieu Van Manh đó vào File SD.dat đó anh
Nếu chuyển được code đó qua Delphi ... thì Em sẻ suy nghĩ từ code đó Viết thêm cái Hàm Tạm keo là Dk kiểm tra cái chuỗi đó nếu là True Hay False cũng là code Delphi

Anh coi viết dùm Em với để em học thêm cách viết nhị phân trên Delphi

VD như hàm sau:
Mã:
Public Function Dk() As Boolean
    Dim St As String, TG As Integer
    Dim DoDai As Integer, VT As Integer
    Dim KeyFile As String: KeyFile = GetKeyFile()
    Open KeyFile For Random As #10 Len = 2
        Get #10, 1, DoDai
        St = ""
        For VT = 1 To DoDai
            Get #10, VT + 1, TG                                
            St = St & ChrW(TG - 9911)                          
        Next
    Close #10
    If St = GetBoardSerial Then Dk = True Else Dk = False
End Function
 

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
ý Em là mã hóa chuỗi Kieu Van Manh đó vào File SD.dat đó anh
Nếu chuyển được code đó qua Delphi ... thì Em sẻ suy nghĩ từ code đó Viết thêm cái Hàm Tạm keo là Dk kiểm tra cái chuỗi đó nếu là True Hay False cũng là code Delphi

Anh coi viết dùm Em với để em học thêm cách viết nhị phân trên Delphi

VD như hàm sau:
Mã:
Public Function Dk() As Boolean
    Dim St As String, TG As Integer
    Dim DoDai As Integer, VT As Integer
    Dim KeyFile As String: KeyFile = GetKeyFile()
    Open KeyFile For Random As #10 Len = 2
        Get #10, 1, DoDai
        St = ""
        For VT = 1 To DoDai
            Get #10, VT + 1, TG                               
            St = St & ChrW(TG - 9911)                         
        Next
    Close #10
    If St = GetBoardSerial Then Dk = True Else Dk = False
End Function
Em cũng dang nghien cứu chuyển code cua anh dây. Ma dao này em dang co chut việc nên ích ngồi máy tính. Chắc mai có kết quả em báo hihihih
 

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
Khó quá anh ơi, cái này phải nhờ anh @batman1 or anh Tuân rồi
Mã:
procedure GetStr(sFile: String; St: String);
var
    TG, VT: integer;
    Bufchar: array[1..9911] of Char;
    H1: File;
begin
    TG := Length(St);
    AssignFile(H1, sFile);
     Reset(H1);
    BlockWrite(H1, TG, 1);
    for VT:=1 to TG do begin
    BlockWrite(H1, Bufchar, VT+1);
    end;
    Close(H1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
    sFile: String;
begin
    sFile := ExtractFilePath(Application.ExeName)+'\SD.dat';
    GetStr(sFile, 'Kieu Van Manh');
end;
PS: Nghiên kíu nhé ....
 
Lần chỉnh sửa cuối:

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
function BlockWrite(var F: File; const Buf; Count: Integer; [var Result: Integer]): Integer; overload;
function BlockWrite(var F: File; const Buf; Count: Integer; [var Result: Integer]): Integer; overload;

Description
Writes one or more records from a variable to an open file.
Warning: This is an older method that is particularly dangerous to use because of the untyped parameter, leading to potential memory corruption. The record size used by BlockWrite and BlockRead is governed by the optional 2nd parameter to the Reset or Rewrite calls used to open the file being written. It is preferable to use streams in your applications. For example, a user procedure involving a stream can use both TMemoryStreamsas well as TFileStreams, instead of being limited to using files as happens with these older routines.
F is an untyped file variable, Buf is any variable, Count is an expression of type Integer, and Result is an optional variable of type Integer.
BlockWrite writes Count or fewer records to the file F from memory, starting at the first byte occupied by Buf. The actual number of complete records written (less than or equal to Count) is returned in Result.
The entire block transferred occupies at most Count*RecSize bytes. RecSize is the record size specified when the file was opened (or 128 if the record size was unspecified).
If the entire block is transferred, Result is equal to Count on return.
If Result is less than Count, the disk became full before the transfer was complete. In this case, if the file's record size is greater than 1, Result returns the number of complete records written.
BlockWrite advances the current file position by Result records.
If Result is not specified, an I/O error occurs if the number written is not equal to Count. If the {$I+} compiler directive is in effect, errors raise an EInOutError exception.
 

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Khó quá anh ơi, cái này phải nhờ anh @batman1 or anh Tuân rồi
Mã:
procedure GetStr(sFile: String; St: String);
var
    TG, VT: integer;
    Bufchar: array[1..9911] of Char;
    H1: File;
begin
    TG := Length(St);
    AssignFile(H1, sFile);
     Reset(H1);
    BlockWrite(H1, TG, 1);
    for VT:=1 to TG do begin
    BlockWrite(H1, Bufchar, VT+1);
    end;
    Close(H1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
    sFile: String;
begin
    sFile := ExtractFilePath(Application.ExeName)+'\SD.dat';
    GetStr(sFile, 'Kieu Van Manh');
end;
PS: Nghiên kíu nhé ....
Kẹt chút mai mốt ngâm cúu
 
Top