AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AnsiString mit fester Länge

Ein Thema von GPRSNerd · begonnen am 4. Feb 2009 · letzter Beitrag vom 20. Jul 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: AnsiString mit fester Länge

  Alt 11. Apr 2009, 22:16
Prima! Danke!

Benmik
  Mit Zitat antworten Zitat
Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#12

dEXIF 1.03d portiert nach Delphi 2009

  Alt 12. Apr 2009, 10:50
Here we go! Angehängt sind die Units dEXIF 1.03d portiert nach Delphi 2009.
Die Portierung ist eine reine Umstellung auf explizite ANSIStrings, Unicode geht nicht!

Falls jemandem noch Probleme auffallen sollten, bitte melden, so dass wir alle davon profitieren können.
Angehängte Dateien
Dateityp: zip dexif_1.03d_d2009_625.zip (39,2 KB, 157x aufgerufen)
Stefan
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: AnsiString mit fester Länge

  Alt 12. Apr 2009, 18:17
Vielen Dank!
Das bringt mich zu einer Bitte, die hoffentlich nicht zu viel verlangt ist.
Seit Längerem suche ich nach einer Komponente für BrowseFolder, die benutzerfreundlicher ist als das übliche Angebotene.
Jetzt bin ich auf Torry fündig geworden, es ist WDialogEx. Leider braucht man zu dieser Komponente die TNTControls, und hier hakt es. Obwohl die Komponente explizit für D2009 "ausgepreist" ist, und es eine Art Anpassung für D2009 gibt, funktioniert es nicht. Ich habe schon herumgepolkt, aber meine Kenntnisse von Unicode, Widestrings und AnsiStrings reichen nicht. Hat einer von euch vielleicht etwas Nerv und Zeit, sich das anzusehen? Ich brauche ja die ganze Funktionalität von TNT nicht, mir würde eine Abkopplung schon reichen. Wäre schön. Danke schonmal.

Benmik
Angehängte Dateien
Dateityp: zip tntunictrlswithexceptions_136.zip (260,8 KB, 4x aufgerufen)
Dateityp: zip wdialogexv1.00d7_967.zip (124,1 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: AnsiString mit fester Länge

  Alt 13. Apr 2009, 09:10
Benmik, mache aus deiner neuen Frage bitte einen neuen Thread. Thread-Highjacking mag hier keiner.
Stefan
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: AnsiString mit fester Länge

  Alt 13. Apr 2009, 13:23
Tut mir leid, auch wenn ich den Begriff "Thread-Hijacking" deutlich zu hart finde. Da es um Strings und Anpassung an D2009 geht, ist m.E. doch eine ziemlich Nähe zum eigentlichen Threadanliegen gegeben. Der Autor der Komponente hat mir jetzt geantwortet, vielleicht erarbeiten wir da eine Lösung. Danke nochmal für die Bereitstellung deiner Anpassung.

Benmik
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.343 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: AnsiString mit fester Länge

  Alt 13. Apr 2009, 14:46
Zitat von Benmik:
Seit Längerem suche ich nach einer Komponente für BrowseFolder, die benutzerfreundlicher ist als das übliche Angebotene.
Jetzt bin ich auf Torry fündig geworden, es ist WDialogEx.
Die kann ja nicht viel, ich habe gerade mal eine Version von TFolderBrowser, die mit D2009 funktioniert, hochgeladen:
http://www.delphi-forum.de/viewtopic...=558093#558093
Das sollte so mit Unicode richtig funktionieren, ein Beispiel findest du im ersten Beitrag.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: AnsiString mit fester Länge

  Alt 14. Apr 2009, 23:55
Hm, nachdem ich mich mit Sebastian per PN ausgetauscht habe und vom Autor meiner Lieblingskomponente eine Version erstellt wurde, die ohne die TNTControls auskommt, habe ich das neue, an D2009 angepasste dEXIF zu kompilieren versucht. Es lief aber keineswegs durch, ich musste noch eine Reihe von "string" durch "AnsiString" ersetzen, z.B. bei den Callback-Funktionen. Und auch bei deinem "string[4]" (dEXIF, 2307) vom Startbeitrag meckerte der Compiler, weil dort "Char" statt "AnsiChar" stand.
Hat das alles seine Richtigkeit? Hast du auch die richtigen Units gepostet, oder ist bei mir was verquer?

Benmik
  Mit Zitat antworten Zitat
Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: AnsiString mit fester Länge

  Alt 20. Apr 2009, 12:00
Ich habe die Units gerade nochmal verglichen und es sind definitiv dieselben, die ich gerade unter D2009 benutze! Wie oben erwähnt, gibts noch ein paar Warnungen und Hinweise, die ich nicht umgesetzt habe.
Wenn du diese Warnungen und Hinweise in den Compiler-Optionen als "Error" deklariert hast, stoppt der Compiler da natürlich.
Lass mal ein paar Zeilennummern und die entsprechenden Fehler sehen...

Den einzigen String[4] in dEXIF ist in der folgenden Funktion:

Delphi-Quellcode:
function tEndInd.Put32s(data:Longint):ansistring;
var
  data2:integer;
  buffer:string[4] absolute data2;
  bbuff:ansichar;
begin
  data2 := data;
  if MotorolaOrder then
  begin
    bbuff := buffer[1];
    buffer[1] := buffer[4];
    buffer[4] := bbuff;
    bbuff := buffer[2];
    buffer[2] := buffer[3];
    buffer[3] := bbuff;
  end;
  result := buffer;
end;
Wo musstest du den da zusätzlich Char durch AnsiChar ersetzen? Das ist exakt die Datei-Version, die ich gepostet habe!? Ich habe die Datei gerade extra nochmal runtergeladen.

Außerdem wäre es nett, wie oben erwähnt, wenn du die geänderten Units auch uns zur Verfügung stellen würdest.
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#19

Re: AnsiString mit fester Länge

  Alt 20. Apr 2009, 12:12
Delphi-Quellcode:
data2: integer;
buffer: string[4] absolute data2;
Sicher daß diese so stimmt?
String[4] ist 5 Byte groß und somit liegt buffer[4] nicht mehr im Datenbereich von data2.

Außerdem würde so die länge von buffer falsch gesetzt und wäre somit nahezu unberechenbar.
Length(buffer) = Byte(data2)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#20

Re: AnsiString mit fester Länge

  Alt 20. Apr 2009, 12:26
Die Einwände verstehe ich nicht so ganz!?

Ich habe an der Logik der Original-Funktion nix geändert bis auf die Ersetzung des Rückgabe-Parameters von String auf AnsiString und bbuff von char nach AnsiChar.
Es handelt sich laut Definition der Funktion um die Umwandlung von Unsigned 32bit Integers...
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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