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 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

array of char UpperCase

  Alt 6. Okt 2008, 07:04
zTmp : array[0..255] of char; Möchte das ergebnis als UpperCase ausgeben wie konvertieren ?

zTmp := UpperCase(zTmp); Array und string

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:06
Hallo EWeis,

zTmp als String definieren.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:08
Zitat von MrSpock:
Hallo EWeis,

zTmp als String definieren.
ahh danke da muss man erst drauf kommen.

Nö geht auch nicht dann hab ich noch mehr Fehler
Dann kommt Meldung!
Zitat:
[Pascal Error] uGDIButton.pas(710): E2250 There is no overloaded version of 'UpperCase' that can be called with these arguments
wenn ich es mit string deviniere

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:18
Zeig mal den Code.
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
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#5

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:28
Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to high(zTmp) do
  begin
    zTmp[i] := UpperCase(zTmp[i])[1];
  end;
end;
^^
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:31
Zitat von DeddyH:
Zeig mal den Code.
Habe es zwar oben schon aber bitte

zTmp : array[0..255] of char;
Delphi-Quellcode:
function AddResource(sResource : PAnsiChar): Integer;
var
  UseStyle, hMain,
  nIndex , nCount: Integer;
  hImage : Cardinal;

begin

    nCount := 0;

    GetShortPathName(sResource, @zTmp, SIZEOF(zTmp));
    zTmp := UpperCase(zTmp); // <<< will nicht
    hMain := wMainWindow(0);
EDIT:
Jetzt habe ich dadurch wieder ein anderes problem .. grrrr
zTmp := PChar(sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4));
Zitat:
[Pascal Error] uGDIButton.pas(743): E2010 Incompatible types: 'Array' and 'PAnsiChar'
Das nerve mich ungemein diese konvertierungen immer

gruss Emil
  Mit Zitat antworten Zitat
Namenloser

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

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:44
Probier mal das:

Delphi-Quellcode:
var
  zTmp: string;
begin
  SetLength(zTmp, 256);
  SetLength(zTmp, GetShortPathName(sResource, @zTmp[1], length(zTmp)-1));
  zTmp := UpperCase(zTmp);
end;
[edit] length(zTmp)-1[/edit]
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:57
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))));
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:59
Zitat von NamenLozer:
Probier mal das:

Delphi-Quellcode:
var
  zTmp: string;
begin
  SetLength(zTmp, 256);
  SetLength(zTmp, GetShortPathName(sResource, @zTmp[1], length(zTmp)-1));
  zTmp := UpperCase(zTmp);
end;
[edit] length(zTmp)-1[/edit]
Das bringt mir nichts denn du hast alles rausgeschmissen was ich in dieser abfrage benötige.

nochmal die ganze Funktion.
Ich erstelle eine NonVCL ListBox

Delphi-Quellcode:
  zTmp : array[0..255] of char;
  zData : array[0..16] of char;
Delphi-Quellcode:
function AddResource(sResource : PAnsiChar): Integer;
var
  UseStyle, hMain,
  nIndex , nCount: Integer;
  hImage : Cardinal;
  i: Integer;

begin

    nCount := 0;

    GetShortPathName(sResource, @zTmp, SIZEOF(zTmp));
    for i := 0 to high(zTmp) do
    begin
      zTmp[i] := UpperCase(zTmp[i])[1];
    end;

    hMain := wMainWindow(0);

    UseStyle := WS_CHILD or LBS_HASSTRINGS;
    hLISTFNAME := GetMainItem(ID_LISTFNAME);
    if hLISTFNAME = 0 then
       hLISTFNAME := CreateWindowEx(0, 'LISTBOX', nil,
         UseStyle, 0, 0, 0, 0, hMain, ID_LISTFNAME, GetInstance, nil);

    hLISTIMAGE := GetMainItem(ID_LISTIMAGE);
    if hLISTIMAGE = 0 then
       hLISTIMAGE := CreateWindowEx(0, 'LISTBOX', nil,
         UseStyle, 0, 0, 0, 0, hMain, ID_LISTIMAGE, GetInstance, nil);


    if hLISTFNAME <> 0 then
    begin
       nIndex := SendMessage(hLISTFNAME, LB_FINDSTRING, -1, integer(@zTmp));
       if nIndex > -1 then // gleicher Eintrag gefunden
       begin
          SendMessage(hLISTIMAGE, LB_GETTEXT, nIndex, integer(@zData));
          hImage := StrLen(zData);
          // lese den string ein
          SendMessage(hLISTFNAME, LB_GETTEXT, nIndex, integer(@zTmp));
          // lösche den alten Eintrag bevor er aktualisiert wird
          SendMessage(hLISTFNAME, LB_DELETESTRING, nIndex, 0);
          SendMessage(hLISTIMAGE, LB_DELETESTRING, nIndex, 0);
          sResource := PChar(RightStr(string(zTmp), 5));
// zTmp := sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4);
          if SendMessage(hLISTFNAME, LB_ADDSTRING, 0, integer(@zTmp)) < 0 then
            hImage := 0 ;
          if SendMessage(hLISTIMAGE, LB_ADDSTRING, 0, integer(@zData)) < 0 then
            hImage := 0;
       end else
       begin
        // kein eintrag gefunden addieren
          hImage := GDI_CreateImageFromFile((sResource));
          if hImage <> 0 then
          begin
// zTmp := PChar(zTmp + '0001');
             if SendMessage(hLISTFNAME, LB_ADDSTRING, 0, integer(@zTmp)) < 0 then
                GDI_DisposeImage(hImage);
             if hImage <> 0 then
             begin
// zData := PChar(IntToStr(hImage));
                if SendMessage(hLISTIMAGE, LB_ADDSTRING, 0, integer(@zTmp)) < 0 then
                hImage := 0;
             end;
          end;
       end;
    end;
    Result := hImage;
end;
Mein problem sind die auskommentierten positionen
welche ich wiedermal nicht richtig kovertieren kann.

Delphi-Quellcode:
zTmp := sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4);
zTmp := PChar(zTmp + '0001');
zData := PChar(IntToStr(hImage));
gruss Emil
  Mit Zitat antworten Zitat
Namenloser

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

Re: array of char UpperCase

  Alt 6. Okt 2008, 08:07
Warum machst du es dir denn so kompliziert mit dem Array? Nimm einfach einen String und alles ist gut...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:30 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