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
mkinzler
(Moderator)

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

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.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

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
 
#3

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.757 Beiträge
 
Delphi 10.4 Sydney
 
#4

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
 
#5

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.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

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
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 12. Jan 2021, 06:52
Abgesehen vom offensichtlichen problem mit den Shortstrings, die ja zum Unicode-Problem führen sind da noch mehr Fallstricke vergraben, die man im hier geposteten Code sieht. Da wäre vielleicht mal ein Refactoring angesagt - das ist auch kein Hexenwerk und sicher rasch erledigt.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.485 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 12. Jan 2021, 11:29
Könnte man diese Diskussion vielleicht in eine andere Kategorie verschieben? Ursprünglich ging es ja um ein Job-Angebot.
Thomas Mueller
  Mit Zitat antworten Zitat
Ceruso

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

AW: Hallo suche Hilfe auf Stundenbasis in Ludwigsburg Delphi XE5

  Alt 12. Jan 2021, 14:41
Hallo an Alle
durch euch bin ich auf die richtige Spur gekommen

Vielen Vielen Vielen Dank.

falls ich nochmals Hilfe brauche wer könnte mir mal ein paar Stunden was erklären?
Raum Ludwigsburg

Danke
Danke
Angehängte Grafiken
Dateityp: jpg aenderung_1.jpg (69,5 KB, 56x aufgerufen)
  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 20:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz