[paradox/bde] long file name probleem

Pagina: 1
Acties:
  • 134 views sinds 30-01-2008
  • Reageer

  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 11-05 08:56
Ik hem een programma wat gebruik maakt van paradox database tabellen. Paradox ondersteund echter niet al te lange bestandsnamen. De map waarin het programma geinstalleerd moet worden is C:\Program Files\erg lange naam nog langer\programs\programma naam

Je krijgt dan echter een foutmelding van Paradox version 5.0 table filename too long. In W2K heb ik dat opgelost door een chdir te doen naar C:\Program Files\erglang~1\programs\progra~1. Onder Windows 2000 blijft dan de korte naam versie actief, Windows 98 maakt er echter eigenwijs weer een lange van dus heeft het intypen / opgeven van de korte naam geen zin. Wat hier aan te doen. Installeren in een andere map is geen optie.

PS: Verkeerd forum? Move ff. k'Verwacht hier de meeste input :P

Verwijderd

Welke programmeeromgeving gebruik je (Borland C++Builder of Delphi). Waar leg je de database connectie. In je eigen code of via een BDE alias? Als je de connectie in je code aanmaakt dan zou je de volgende Windows API in overweging kunnen nemen:
C++:
1
2
3
4
5
6
7
8
9
10
const char* longpath="C:\\Program Files";
unsigned long buflen=MAX_PATH;
char* shortpath=new char[buflen+1];
buflen = GetShortPathName(longpath, shortpath, buflen);
if(buflen) {
  ShowMessage(shortpath);
}
else {
  RaiseLastWin32Error();
}

Of in Delphi:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  lpShortPath, lpLongPath: PChar;
  buflen: DWORD;
begin
  lpLongPath:=StrPCopy(lpLongPath, 'C:\Program Files');
  buflen:=MAX_PATH;
  lpShortPath:=StrAlloc(MAX_PATH+1);
  buflen:=GetShortPathName(lpShortPath, lpLongPath, buflen);
  if buflen>0 then
    ShowMessage(lpShortPath)
  else
    RaiseLastWin32Error();
end;

Bovenstaande Delphi code heb ik niet kunnen testen. C++ code daarentegen wel.

[ Voor 33% gewijzigd door Verwijderd op 11-03-2004 10:56 ]


  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 11-05 08:56
Het is niet een programma wat ik zelf gemaakt heb. Op win2k doe ik:
start / uitvoeren / cmd
C:>cd \progra~1\erglang~1
C:\progra~1\erglang~1\.... > _

Op win98 het zelfde
C:>cd \progra~1\erglang~1
C:\program files\erg lange naam nog langer\>_

Dus die converteerd direct naar lange bestandsnamen en dan wil het programma niet starten omdat de filename te lang is |:(
Hij moet dus op de korte bestandsnaam blijven hangen in win98

Kan zelf de sources van het programma niet aanpassen, die heb ik niet.

[ Voor 10% gewijzigd door Eastern op 11-03-2004 11:47 ]


Verwijderd

Eastern schreef op 11 maart 2004 @ 11:46:
Het is niet een programma wat ik zelf gemaakt heb. Op win2k doe ik:
Kan zelf de sources van het programma niet aanpassen, die heb ik niet.
Wat doet het dan in P&W? Dit hoort in WOS lijkt me.