AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

AnsiStringArray aus DLL an Excel-VBA

Ein Thema von Andreas13 · begonnen am 25. Apr 2019 · letzter Beitrag vom 10. Mai 2019
 
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: AnsiStringArray aus DLL an Excel-VBA

  Alt 26. Apr 2019, 07:32
Habe dir das mal schnell zusammen geklopft..
Alle Strings (PAnsiChars) werden aus der DLL von der const AnsiString_Vektor_GLOBAL an VBA(VB) geschickt.
ShareMem ist wohl hier nicht nötig..

Das ist alles..

Delphi-Quellcode:
library Delphi_String_for_Excel_Test;

uses ShareMem, SysUtils, Classes;

{$R *.res}

const
   AnsiString_Vektor_GLOBAL: Array [0..3] of PAnsiChar =
     ('1: Erster String',
      '2: Das ist der ZWEITE String!',
      '3: ...und hier ist der DRITTE!',
      '4: Schlußlicht-String...');

function PAnsiChar_To_Excel(Delimiter: AnsiChar = ';'): PAnsiChar; stdcall;
var
  IntI: Integer;
  erg: AnsiString;
begin

  for IntI := 0 to 3 do
  begin
    erg := erg + AnsiString(AnsiString_Vektor_GLOBAL[IntI]) + Delimiter;
    erg := copy(erg, 1, length(erg));
  end;
  result := PAnsiChar(erg);
end;

exports
   PAnsiChar_To_Excel;

begin

end.
VBA..
Module..
Code:
Public Declare Function PAnsiChar_To_Excel Lib "Delphi_String_for_Excel_Test" ( _
    Optional ByVal Delimiter As Byte = 59 _
) As Long
Form..
Code:
Option Explicit

Private Sub cmdGet_Click()

Dim IntI      As Integer
Dim flist     As String
Dim uB        As Integer
Dim LngP      As Long
Dim alist()   As String
Dim Delimiter As Byte

    ListInput.Clear
    Delimiter = 124 ' >>> Default ohne Angabe = 59 = ";"
   
    LngP = PAnsiChar_To_Excel(Delimiter) ' >>> "|"

    flist = VBStrFromAnsiPtr(LngP)
    alist = Split(flist, "|")
   
    If flist > "" Then
        uB = UBound(alist)
        For IntI = 0 To uB
            ListInput.AddItem alist(IntI)
        Next
    End If
   
End Sub
gruss

Geändert von EWeiss (11. Jul 2019 um 15:59 Uhr)
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz