AGB  ·  Datenschutz  ·  Impressum  







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

array of char UpperCase

Ein Thema von EWeiss · begonnen am 6. Okt 2008 · letzter Beitrag vom 6. Okt 2008
Antwort Antwort
Seite 2 von 3     12 3      
EWeiss
(Gast)

n/a Beiträge
 
#11

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:09
Zitat von alzaimar:
Nur mal so:
Function Upcase(c : Char) : Char; Und ein Array in Großbuchstaben geht so (zugegeben: Besonders pervers)
StrPCopy (PChar(@s),Uppercase(StrPas(PChar(@s))));
jo das funktioniert klasse auch ohne schleife ..

hab dann aber nocht nicht mein anderes Problem gelößt
Delphi-Quellcode:
zTmp := sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4);
zTmp := PChar(zTmp + '0001');
zData := PChar(IntToStr(hImage));
Zitat:
[Pascal Error] uGDIButton.pas(739): E2010 Incompatible types: 'Array' and 'string'
[Pascal Error] uGDIButton.pas(750): E2010 Incompatible types: 'Array' and 'PAnsiChar'
[Pascal Error] uGDIButton.pas(755): E2010 Incompatible types: 'Array' and 'PAnsiChar'
gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:10
Zitat von NamenLozer:
Warum machst du es dir denn so kompliziert mit dem Array? Nimm einfach einen String und alles ist gut...
Schau dir die Funktion an dann weißt du warum es nicht geht.

gruss Emil
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#13

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:15
Zitat von EWeiss:
Zitat von NamenLozer:
Warum machst du es dir denn so kompliziert mit dem Array? Nimm einfach einen String und alles ist gut...
Schau dir die Funktion an dann weißt du warum es nicht geht.

gruss Emil
Ich hab mir die Funktion natürlich durchgelesen, aber ich sehe keine Stelle wo ein Array erforderlich ist. Du kannst statt integer(@Array) problemlos integer(@string[1]) benutzen und dir an anderen Stellen eine Menge aufwand sparen...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:22
Zitat von NamenLozer:
Zitat von EWeiss:
Zitat von NamenLozer:
Warum machst du es dir denn so kompliziert mit dem Array? Nimm einfach einen String und alles ist gut...
Schau dir die Funktion an dann weißt du warum es nicht geht.

gruss Emil
Ich hab mir die Funktion natürlich durchgelesen, aber ich sehe keine Stelle wo ein Array erforderlich ist. Du kannst statt integer(@Array) problemlos integer(@string[1]) benutzen und dir an anderen Stellen eine Menge aufwand sparen...
ohne über Array zu gehen so wie du es beschrieben hast
bekomme ich bei
GetShortPathName(sResource, @zTmp, SIZEOF(zTmp)); nichts raus da ich hier einen Buffer benötige.

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:24
Wenn zTmp ein String ist:GetShortPathName(sResource, @zTmp[1], Length(zTmp));
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#16

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:26
Du hast ja auch nicht meinen Code benutzt. Bei mir steht @zTmp[1] (Zeiger auf erstes Zeichen) und Length(zTmp)-1. Und vergiss nicht, die Länge des Strings mit SetLength zuerst auf die richtige Länge zu setzen.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:26
Zitat von DeddyH:
Wenn zTmp ein String ist:GetShortPathName(sResource, @zTmp[1], Length(zTmp));
Nein es wird nichts zurückgeliefert
zTmp ist leer wenn ich einen string dafür verwende

gruss Emil
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#18

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:30
Delphi-Quellcode:
procedure Test(sResource: pChar);
var
  zTmp: string;
begin
  SetLength(zTmp, 256);
  SetLength(zTmp, GetShortPathName(sResource, @zTmp[1], length(zTmp)-1));
  zTmp := UpperCase(zTmp);
  showmessage(ztmp);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Test('c:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2904.0\Microsoft.DirectX.Direct3DX.xml');
end;
Gibt bei mir folgendes aus:

Code:
---------------------------
Project1
---------------------------
C:\WINDOWS\MICROS~1.NET\DIRECT~1\102904~1.0\MICROS~1.XML
---------------------------
OK  
---------------------------
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:32
Zitat von NamenLozer:
Delphi-Quellcode:
procedure Test(sResource: pChar);
var
  zTmp: string;
begin
  SetLength(zTmp, 256);
  SetLength(zTmp, GetShortPathName(sResource, @zTmp[1], length(zTmp)-1));
  zTmp := UpperCase(zTmp);
  showmessage(ztmp);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Test('c:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2904.0\Microsoft.DirectX.Direct3DX.xml');
end;
Gibt bei mir folgendes aus:

Code:
---------------------------
Project1
---------------------------
C:\WINDOWS\MICROS~1.NET\DIRECT~1\102904~1.0\MICROS~1.XML
---------------------------
OK  
---------------------------
Sorry tut mir leid
Habe nicht ganz mitbekommen auf was du hinaus wolltest das funktioniert natürlich dann auch mit string
und nimmt mir viel Arbeit ab so wie du schon sagtest.
Hatte die länge nicht mit berücksichtigt.
Danke schön

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:43
GetShortPathName gibt Dir übrigens die benötigte Länge zurück, wenn der Puffer zu klein ist.
Delphi-Quellcode:
SetLength(zTmp,GetShortPathName(sResource,nil,0));
GetShortPathName(sResource,@zTmp[1],Length(zTmp));
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 11:35 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