AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Job-Börse: Angebote und Gesuche Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5
Thema durchsuchen
Ansicht
Themen-Optionen

Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

Ein Thema von Ceruso · begonnen am 11. Jan 2021 · letzter Beitrag vom 13. Jan 2021
Antwort Antwort
Ceruso

Registriert seit: 11. Jan 2021
5 Beiträge
 
#1

Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 11. Jan 2021, 13:41
Hallo suche Hilfe auf Stundenbasis in Ludwigsburg
bestehendes Delphiprojekt
wurde von Delphi 3 auf delphi XE5 portiert und angepasst , seitdem läuft eine bisher eingbundene DLL nicht mehr


StdCall EXTERNAL xxxx.dll

gibt keine Daten mehr zurück
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.873 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 11. Jan 2021, 13:44
Vermutlich ein Unicode-Problem
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 11. Jan 2021, 13:48
Hallo,
mkinzler hat es schon angesprochen.

Wie sieht die Signatur (Parameter-Liste) der DLL-Methoden aus?

alt
procedure Dll_1(Name: String);
procedure Dll_2(Name: PChar);

neu (müsste geändert werden)
procedure Dll_1(Name: AnsiString);
procedure Dll_2(Name: PAnsiChar);
Heiko

Geändert von hoika (11. Jan 2021 um 14:47 Uhr)
  Mit Zitat antworten Zitat
Ceruso

Registriert seit: 11. Jan 2021
5 Beiträge
 
#4

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 11. Jan 2021, 13:58
Hallo

dies wird übergeben
als erstes sollte der Name der Datei übergeben werden.
Die Dll prüft in einem Verzeichniss alle Dateien auf folgende Zeichen " IF POS('0 1 2 3 4 5 6 7 8 9',HStr)=1 THEN "
und falls vorhanden soll der Name übergeben werden.

F
Delphi-Quellcode:
UNCTION ExtFlrFirst (Name : STR255;
                         VAR Kopf : TFlrKopf;
                         VAR ExtFlrDat : TExtFlrDat) : INTEGER;
StdCall EXTERNAL 'Flr_Ein.dllINDEX 1;

FUNCTION ExtFlrNext (VAR Kopf : TFlrKopf;
                         VAR ExtFlrDat : TExtFlrDat) : INTEGER;
StdCall EXTERNAL 'Flr_Ein.dllINDEX 2;

FUNCTION ExtFlrKopf (Name : STR255;
                         Bez : STR255;
                         VAR Kopf : TFlrKopf) : INTEGER;
StdCall EXTERNAL 'Flr_Ein.dllINDEX 3;

FUNCTION ExtFlrLesen (Name : STR255;
                         Bez : STR255;
                         VAR Kopf : TFlrKopf;
                         VAR Anz : INTEGER;
                         VAR C,X : TEHTSpalte) : INTEGER;
StdCall EXTERNAL 'Flr_Ein.dllINDEX 4;

FUNCTION ExtFlrLoeschen (Name : STR255;
                         Bez : STR255;
                         TmpName : STR255) : INTEGER;
StdCall EXTERNAL 'Flr_Ein.dllINDEX 5;
DLL:
Delphi-Quellcode:
FUNCTION StringIstLeer (HStr : STRING) : BOOLEAN;
VAR I : INTEGER;
BEGIN
  I := LENGTH(HStr); WHILE (I>0) AND (HStr[I]=' ') DO DEC(I);
  StringIstLeer := I=0;
END;
{- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }
BEGIN
  HoleZeile := FALSE;
  IF Dat.Flag AND (Dat.BPos<Dat.Size) THEN
  BEGIN
    Zeile.Anfg := Dat.BPos;
    Zeile.Txt := '';
    Zeile.Typ := -1;
    CR := FALSE;
    LF := FALSE;
    I := 0;
    REPEAT
      IF Dat.BPos>=Dat.Pos THEN LeseBlock(Dat);
      IF Dat.Flag AND (Dat.BPos<Dat.Size) THEN
      BEGIN
        B := Dat.Blk[Dat.BPos-Dat.BAnf];
        INC(Dat.BPos); INC(I);
        IF B=$0A THEN LF := TRUE ELSE
        IF B=$0D THEN CR := TRUE ELSE
        IF Length(Zeile.Txt)<128 THEN
        BEGIN
           {Zeichen kleiner ' ' in Leerzeichen wandeln,
            fuehrende und mehrfache Leerzeichen gleich aussondern:}

           IF (B>ORD(' ')) THEN Zeile.Txt := Zeile.Txt+CHR(B) ELSE
           IF (LENGTH(Zeile.Txt)>0)
              AND (Zeile.Txt[Length(Zeile.Txt)]<>' ')
           THEN Zeile.Txt := Zeile.Txt+' ';
        END ELSE
        IF I>MaxZL THEN Dat.Flag := FALSE;
      END;
    UNTIL (NOT Dat.Flag) OR CR OR LF OR (Dat.BPos>=Dat.Size);
    {Zeilenabschluss mit CR, folgt noch ein zugehoeriges LF?}
    IF CR AND Dat.Flag AND (Dat.BPos<Dat.Size) THEN
    BEGIN
      IF Dat.BPos>=Dat.Pos THEN LeseBlock(Dat);
      IF Dat.Flag AND (Dat.Blk[Dat.BPos-Dat.BAnf]=$0A) THEN INC(Dat.BPos);
    END;
    {Zeile gelesen?}
    IF Dat.Flag THEN
    BEGIN
      HoleZeile := TRUE;
      {Enthaelt die Zeile Daten?}
      HStr := Zeile.Txt;
      {Leerzeile?}
      IF StringIstLeer(HStr) THEN Zeile.Typ := 0 ELSE
      {Spaltenbeschriftung?}
      IF [B]POS('0 1 2 3 4 5 6 7 8 9',HStr)=1[/B] THEN
      BEGIN
        IF StringIstLeer(COPY(HStr,20,255)) THEN Zeile.Typ := 1;

Geändert von mkinzler (12. Jan 2021 um 06:51 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 11. Jan 2021, 16:24
wie ist denn z.B. "B" definiert oder der Type: STR255 (Array[0..254] of char?)

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Ceruso

Registriert seit: 11. Jan 2021
5 Beiträge
 
#6

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 12. Jan 2021, 04:44
Delphi-Quellcode:
LIBRARY Flr_Ein;

USES SysUtils,Classes;


TYPE
  TWert = RECORD
                       Gueltig : BOOLEAN;
                       Wert : DOUBLE;
                     END;
CONST
  MaxEHT = 7200;
  MaxEHTSP = 7200;
TYPE
  [B]STR255 [/B] = Ansistring;{STRING[255];}
  PEHTSpalte = ^TEHTSpalte;
  TEHTSpalte = ARRAY[0..MaxEHTSP] OF DOUBLE;
TYPE
  TFlrKopf = RECORD
                       Bez : STR255; {Bezeichnung}
                       EHT : STR255; {Dateiname EHT}
                       Bea : STR255; {Bearbeiter}
                       Bem : STR255; {Bemerkung}
                       Dat : STR255; {Datum/Uhrzeit}
                       DFl : BOOLEAN; {Flag Stoessel gelesen}
                       DRS : TWert; {Durchmesser Rollenstoessel}
                       Wkl : TWert; {Bezugswinkel}
                       Spg : TWert; {1=Gespiegelt}
                       Fkt : TWert; {Bewertungsfaktor}
                       Inch : BOOLEAN; {Flag fuer Masssystem}
                       Norm : BOOLEAN; {Flag, Daten normal auf T-Bahn}
                     END;
TYPE
  TExtFlrDat = ARRAY[0..255+4] OF BYTE;

.
.
.
.FUNCTION HoleZeile (VAR Dat : TDatei;
                    VAR Zeile : TZeile) : BOOLEAN;
CONST
  MaxZL = 500;
VAR
 [B] B [/B] : BYTE;
  CR,LF : BOOLEAN;
  I,J,E : INTEGER;
  HStr : STR255;

Geändert von mkinzler (12. Jan 2021 um 06:51 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 12. Jan 2021, 05:42
Hallo ,
wir brauchen die Definition aller Datentypen,
ST255, TFlrxxxxx

Dort muss alles von String auf AnsiString, von Char auf AnsiChar geändert werden.
Heiko

Geändert von hoika (12. Jan 2021 um 05:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 11:41 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